2015-11-03 84 views
0

我在四个不同的生产服务器上安装了一个数据库。每个服务器都有自己的不同用户。当我在这些服务器上使用create语句创建一个新表时,每台服务器都会设置/提前提供他们的用户名,例如将dbo设置为所有新表的默认模式

Create Table tab_1 ...
abc.tab_1在服务器1使用def作为登录使用abc作为server_2上登录
def.tab_1使用ghi作为登录server_3
ghi.tab_1上server_4
jkl.tab_1使用jkl作为登录

我为创建想要使用dbo作为默认模式,并且必须在每个服务器上为每个新建使用以下语句表

ALTER SCHEMA dbo TRANSFER login.table_name; 

有什么办法修改Create Table声明或其他设置通过在所有服务器上创建的每个表作为dbo.table_name

我使用共享的主机,并有在SSMS很多限制,因此查询基于解决方案将是适当的。

+0

http://stackoverflow.com/questions/17571233/how-to-change-schema-of-all-tables-views-and-stored -procedures-in-mssql –

+0

@عجمان此链接描述了在创建表之后更改模式,我已经在上面提及它。我正在寻找为所有新表设置默认模式,以便以后不必更改它。由janschweizer给出的答案是有前途的,但我不知道它可以设置,即使没有在Create语句中指定? – haraman

回答

2

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

CREATE TABLE dbo.dummy();

要更改默认模式为用户看到这样的回答:https://stackoverflow.com/a/8208124/3480246

+0

这是一个不错的选择。尽管它可以永久或默认设置,以便所有新表都在dbo模式下自动创建,而无需明确提及。 – haraman

+0

查看我的编辑 - 您可以为用户设置默认模式。 – Jan