繁体   English   中英

如何在不丢弃SQL Server 2005中引用外键的情况下将群集主键转换为非群集主键

[英]How to convert clustered primary key to non-clustered without dropping referring foreign keys in SQL Server 2005

我在GUID列上创建聚簇主键时犯了错误。 有许多表引用具有已定义外键的表。 表大小不重要。

我想将它从群集转换为非群集,而无需手动删除和重新创建任何外键甚至主键约束。

是否有可能在MS SQL2005中实现这一点,如果是的话?

如果是的话,是否可以实现ONLINE(没有db停机时间)?

您可以先尝试创建唯一的非聚簇NC索引,然后删除聚簇PK。 FK应该识别这个其他索引(但可能不会:从未尝试过)。

运行ALTER TABLE以删除集群PK时,请使用ONLINE选项。 但是,它仅适用于企业版。

ALTER TABLE Mytable DROP CONSTRAINT PK_Mytable WITH (ONLINE = ON)

您不能使用ONLINE作为ADD CONSTRAINT位。

基本上,您的选项是有限的,没有阻止,或首先创建另一个表并移动数据...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM