我在数据库中定义了一个模式。但现在每次我执行sql语句时,我都必须提供模式... SELECT * FROM [myschema].table
我使用management studio为我的用户设置了默认模式,还运行了ALTER USER myUser WITH DEFAULT_SCHEMA [myschema],但在没有模式的情况下编写查询(SELECT * FROM table)时,仍然得到无效的对象'table‘
有没有一种方法可以编写SELECT * FROM table而不必一直指定模式名称?
它基于SQL 2005,使用SQL Management Studio。
发布于 2010-09-28 01:32:17
用户是SA吗?如果是,根据documentation SA,它将不起作用。默认情况下,用户始终使用dbo模式。
如果用户是sysadmin固定服务器角色的成员,则忽略DEFAULT_SCHEMA的值。sysadmin固定服务器角色的所有成员都具有缺省架构dbo.
发布于 2010-09-28 02:19:08
有几个选项:
为your_db.your_schema.table_name创建同义词table_name
在该数据库上下文中,...which将影响不使用至少两个名称表示法的每个人。Read more about it here。但它最终与在“可用数据库”下拉列表(在“执行”按钮左上角)中选择的数据库正确相关。
SELECT * FROM your_db.your_schema.table_name
发布于 2012-10-24 05:16:55
如果您不想使用“完全限定的”SQl名称,那么您需要避免使用任何帐户或角色来创建表,这些帐户或角色不使用分配的"dbo“默认模式。如果不打算使用默认模式,为什么还要更改用户的默认模式呢?
https://stackoverflow.com/questions/3806245
复制相似问题