【发布时间】:2014-10-14 08:37:46
【问题描述】:
我刚刚将我的Member 表从MRK 架构移动到GNR。
我之前有下面的脚本来设置它的主键:
If not Exists (select 1
from sys.objects
where name = 'PK_MRK_Member'
)
ALTER TABLE [MRK].[Member]
ADD CONSTRAINT [PK_MRK_Member] PRIMARY KEY CLUSTERED
(
[MemberID] ASC
) ON [PRIMARY]
GO
我现在如何更改已定义约束的名称和架构?
我尝试exec sp_rename 'PK_MRK_Member', 'PK_GNR_Member', 'INDEX' 更改名称,但收到此错误:
Either the parameter @objname is ambiguous or the claimed @objtype (INDEX) is wrong.
P.S.:我无法删除表和/或 PK 约束并再次创建它们,因为它们的 PK 已被其他表使用。
【问题讨论】:
-
感谢@PrasanthVJ 和 Jeroen Mostert 的帮助,我想我会放弃的 :)
-
一般来说,您不能更改约束。但是这种情况很特殊——虽然主键是一个约束,但底层索引可以被重命名,根据下面的@vladimir-semashkin。
标签: sql sql-server database-schema sp-rename