SQLServer:选择用户的默认架构时出现问题

时间:2010-08-27 05:27:16

标签: sql-server schema

我将模式命名为错误,并且所有表都是使用错误名称的模式创建的。所以我创建了一个,并使用alter schema来传输表。

第一个问题是,当我尝试删除错误的架构时SQL Server失败,其次,虽然用户是使用新架构创建的默认设置,但我想我可以简单地说

select * from table1, 

而不是

select * from myschema.table1, 

但它不起作用。我必须明确。有什么想法发生了什么? 更奇怪的是,用默认模式创建的旧用户现在无法更改它。这有点令人沮丧。请帮忙。

1 个答案:

答案 0 :(得分:2)

您可以尝试执行以下操作:

ALTER USER userName  
WITH DEFAULT_SCHEMA =myschema

假设“myschema”是您希望用户默认使用的新架构。

我知道您提到新用户是使用新架构创建的,但如果是这种情况,那么您不应该看到这种错误。所以事情似乎出了问题。 明确设置默认架构可能会纠正此问题。

一般来说,

  1. 当前数据库中登录会话的默认架构是分配给当前数据库级主体 - 数据库用户的默认架构。

  2. 如果要引用默认架构中的对象,则无需指定架构名称。

  3. 如果要引用默认架构之外的对象,则必须指定架构名称。

  4. 有关会话架构等的更多详细信息,this也可以提供帮助