有没有一种方法可以设置查询的模式,以便在其余查询中我可以仅按表名引用表,而无需在表名前添加表名?
例如,我想做这样的事情:
Use [schemaName] select * from [tableName]
与此相反:
select * from [schemaName].[tableName]
一个快速的谷歌把我指向了这个页面。它说明从sql server 2005开始,您可以使用ALTER USER语句设置用户的默认架构。不幸的是,这意味着您将对其进行永久更改,因此,如果需要在模式之间进行切换,则每次执行存储过程或一批语句时都需要对其进行设置。
如果您使用的是sql server 2000或更早版本,则此页面说明用户和架构是等效的。如果您没有在表名前面加上schema \ user,则sqlserver将首先查看当前用户拥有的表,然后查看dbo拥有的表来解析表名。似乎对于所有其他表,您必须在schema \ user之前。