Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 动态更改我的模式_Sql Server 2005_Tsql_Sql Server 2008 - Fatal编程技术网

Sql server 2005 动态更改我的模式

Sql server 2005 动态更改我的模式,sql-server-2005,tsql,sql-server-2008,Sql Server 2005,Tsql,Sql Server 2008,我想知道是否有办法改变我在ManagementStudio中工作的模式。例如,我可能有一个默认的dbo模式。但有时我可能想查询记帐模式中的对象。如果我可以发出一个命令并使其生效,这样我就不必再在表和视图之前包含记帐了,那就太好了。但是下次我进入时,我将返回默认的dbo。您应该始终使用模式作为对象的前缀。在AdventurWorks数据库中,您会注意到模式的广泛使用: Select ... From Person.Contact Select ... From Person.StateProvin

我想知道是否有办法改变我在ManagementStudio中工作的模式。例如,我可能有一个默认的dbo模式。但有时我可能想查询记帐模式中的对象。如果我可以发出一个命令并使其生效,这样我就不必再在表和视图之前包含记帐了,那就太好了。但是下次我进入时,我将返回默认的dbo。

您应该始终使用模式作为对象的前缀。在AdventurWorks数据库中,您会注意到模式的广泛使用:

Select ... From Person.Contact
Select ... From Person.StateProvince
在每个查询中,使用模式作为对象的前缀,并用句点分隔它们。(
)。当您省略模式时,系统需要做更多的工作来确定您想要哪个对象。即使您引用的所有对象都是
dbo
,也应该在所有对象引用中包含
dbo

现在,您可以使用
alteruser
更改默认模式:

ALTER USER userName  WITH DEFAULT_SCHEMA = schemaName

即便如此,我还是强烈建议您在引用任何对象时始终包含模式。

我知道我可以始终使用模式名称,并且可以更改默认模式。我正在寻找的是一种快速的方法来更改特定连接的默认值。我理解完全限定名的原因,但作为一个诚实的人,有时我只是想快速地原型化一些东西,而不需要架构信息的额外开销。@Kirk-没有办法为每个连接设置默认架构。唯一的方法是使用Alter语句,这将为您的用户更改它。当然,您可以简单地在脚本的顶部放置一个alter语句,在底部放置另一个alter语句来重置它。