我有一个表,我们称它为Users
。该表具有名为 Id
的主键。尽管有 Id
作为主键(唯一聚集),它在同一列(Id
)上有其他索引(唯一非聚集)。
我想删除这个约束,但是外键引用了这个唯一的非聚集索引,我得到了 The constraint ... is being referenced by table...
错误。
删除此类索引的最佳方法是什么?您是否有任何脚本可以在特定表的特定列上删除、执行某些操作并重新创建外键?有很多外键,所以如果我能自动完成就好了。我可以使用 INFORMATION_SCHEMA 和其他系统对象来提取有关这些 key 的信息,但我不想写已经写过的或可以用其他方式完成的内容。
最佳答案
为了删除外键引用的非聚集索引,您必须首先删除外键约束。
请查看 SQL Server Central 上的海报中提供的以下脚本。它们可能需要根据您的“确切”要求进行一些调整,但它们为编写脚本以及随后重建外键提供了基础。
关于sql - 如何删除外键引用的唯一索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1957788/