我将模式命名为错误,并且所有表都是使用错误名称的模式创建的。所以我创建了一个,并使用alter schema来传输表。
第一个问题是,当我尝试删除错误的架构时SQL Server失败,其次,虽然用户是使用新架构创建的默认设置,但我想我可以简单地说
select * from table1,
而不是
select * from myschema.table1,
但它不起作用。我必须明确。有什么想法发生了什么? 更奇怪的是,用默认模式创建的旧用户现在无法更改它。这有点令人沮丧。请帮忙。
答案 0 :(得分:2)
您可以尝试执行以下操作:
ALTER USER userName
WITH DEFAULT_SCHEMA =myschema
假设“myschema”是您希望用户默认使用的新架构。
我知道您提到新用户是使用新架构创建的,但如果是这种情况,那么您不应该看到这种错误。所以事情似乎出了问题。 明确设置默认架构可能会纠正此问题。
一般来说,
当前数据库中登录会话的默认架构是分配给当前数据库级主体 - 数据库用户的默认架构。
如果要引用默认架构中的对象,则无需指定架构名称。
如果要引用默认架构之外的对象,则必须指定架构名称。
有关会话架构等的更多详细信息,this也可以提供帮助