以下行有效:
SELECT * FROM [myschema].users
但这不是:
SELECT * FROM users
答案 0 :(得分:52)
默认架构是特定于用户的:
USE yourDatabase;
ALTER USER [yourUser] WITH DEFAULT_SCHEMA = myschema;
有关SQL 2005的ALTER TABLE的更多信息也可能对您有所帮助。
由于这是特定于用户的,如果您有多个用户,则需要为每个要更新其默认架构的用户执行此查询(在每个数据库上)。
重要的是要注意:
The value of DEFAULT_SCHEMA is ignored if the user is a member of the sysadmin
fixed server role. All members of the sysadmin fixed server role have a default
schema of dbo.
答案 1 :(得分:3)
您可以使用:
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
设置用户的默认架构。
答案 2 :(得分:0)
就像user960567一样,我尝试了Adam和Ivan的回答,但无法正常工作。
我在跑步:
ALTER USER myuser WITH DEFAULT_SCHEMA=newschema
按照建议,但是在执行并执行之后
SELECT SCHEMA_NAME()
它仍然返回“ dbo”作为默认模式。
要解决此问题,我执行了
ALTER USER myuser WITH DEFAULT_SCHEMA=newschema EXECUTE AS USER='myuser'
并按预期工作-现在执行:
SELECT SCHEMA_NAME()
返回“ newschema”。