SQL 从 dbo 更改模式的服务器设置

SQL Server setting that changes schema from dbo

SQL 服务器中是否有 option/setting/default 导致新的存储过程被放置在您的用户 ID 而不是架构 dbo 下?根据 this script.

的测试,我在 db-owner 组中

例如,我在SSMS中运行这个:

create proc TestName as 
   print 'this is just a test' 

创建的存储过程是CORP\myuser.TestName,所以CORP\myuser似乎是架构,对吧?

还是创建的时候需要特别指定dbo.TestName

与这个问题相关:

The stored procedure created is CORP\myuser.TestName, so CORP\myuser seems to be the schema, right?

是的,我怀疑这是您的默认架构。

How do I set the schema?

在对象上,您说 CREATE PROCEDURE dbo.TestNameCREATE PROCEDURE desired_schema_name.TestName。您以前不必这样做是盲目的运气,因为编写代码的人没有不同的默认模式。但也有其他不懒惰的原因:参见 Bad habits: Avoiding the schema prefix.

在您的用户中,您说:

ALTER USER [CORP\myuser] WITH DEFAULT_SCHEMA = dbo;

但这可能必须由具有更多权限的人 运行 完成,并且可能您甚至没有权限在 dbo 模式中创建过程(或在那里转移对象)。