将 dbo 设置为所有新表的默认架构

har*_*man 2 sql-server schema owner create-table sql-server-2008-r2

我在四个不同的生产服务器上安装了一个数据库。每个服务器都有自己不同的用户。当我在这些服务器上使用 create 语句创建新表时,每个服务器都会设置/前置其用户名,例如

Create Table tab_1 ...
abc.tab_1在 server_1 上使用abcas 登录名
def.tab_1在 server_2 上使用defas 登录名
ghi.tab_1在 server_3 上使用ghias 登录名
jkl.tab_1在 server_4 上使用jklas 登录名

我想用作dbo默认架构,并且必须在每台服务器上为每个新表使用以下语句

ALTER SCHEMA dbo TRANSFER login.table_name;
Run Code Online (Sandbox Code Playgroud)

有没有办法修改Create Table在所有服务器上创建每个表的语句或其他设置dbo.table_name

我正在使用共享托管,并且 SSMS 中有很多限制,因此基于查询的解决方案是合适的。

Jan*_*Jan 5

您可以控制创建表查询吗?在这种情况下,只需在 create 中指定 dbo 即可:

创建表 dbo.dummy();

要更改用户的默认架构,请参阅此答案:https ://stackoverflow.com/a/8208124/3480246