SQL Server 多架构对象问题

Posted

技术标签:

【中文标题】SQL Server 多架构对象问题【英文标题】:SQL Server multiple schema object issues 【发布时间】:2011-05-12 17:56:30 【问题描述】:

我的数据库中有多个架构和对象。我想将对象合并到一个架构中。

我试过了

ALTER SCHEMA dbo TRANSFER <custom_schema>.<table_name>

我得到一个

对象已存在消息

但是,我在管理工作室中看不到它,并且

SELECT * from dbo.<table_name>

返回

对象不存在。

看起来某些系统表条目不正常。我查看了 sysobjects,它只有一个 .欢迎任何有关如何解决/解决此问题的建议。

注意:我可以创建同义词

CREATE SYNONYM dbo.<table_name> FOR <custom_schema>.<table_name>

工作正常

【问题讨论】:

您是否在尝试转移之前创建了同义词? 没有。当我发现我无法执行 ALTER SCHEMA 时,我创建了它... TRANSFER 【参考方案1】:

根据this MSDN page,您的问题可能是由主键名称重复引起的。即您的 table_name 的主键名称与已在 dbo 中的某个其他表中定义的主键名称冲突。

要解决此问题,请重命名 您创建的表的主键 想搬家。使用不 作为主键出现在 目标架构。

【讨论】:

我今天遇到了这个问题,改了PK名,改了schema,然后把PK名改回原来的名字,效果很好!

以上是关于SQL Server 多架构对象问题的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 角色、架构、用户

SQL Server 中所有者和架构之间的区别

SQL Server 中所有者和架构之间的区别

SQL Server安全(5/11):架构与安全(Schemas and Security)

重命名 SQL Server 架构

通过Visual Studio 2012 比较SQL Server 数据库的架构变更