sql - 如何删除外键引用的唯一索引?

标签 sql sql-server sql-server-2000 foreign-keys indexing

我有一个表,我们称它为Users。该表具有名为 Id 的主键。尽管有 Id 作为主键(唯一聚集),它在同一列(Id)上有其他索引(唯一非聚集)。

我想删除这个约束,但是外键引用了这个唯一的非聚集索引,我得到了 The constraint ... is being referenced by table... 错误。

删除此类索引的最佳方法是什么?您是否有任何脚本可以在特定表的特定列上删除、执行某些操作并重新创建外键?有很多外键,所以如果我能自动完成就好了。我可以使用 INFORMATION_SCHEMA 和其他系统对象来提取有关这些 key 的信息,但我不想写已经写过的或可以用其他方式完成的内容。

最佳答案

为了删除外键引用的非聚集索引,您必须首先删除外键约束。

请查看 SQL Server Central 上的海报中提供的以下脚本。它们可能需要根据您的“确切”要求进行一些调整,但它们为编写脚本以及随后重建外键提供了基础。

Scrip out Foreign Keys

关于sql - 如何删除外键引用的唯一索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1957788/

相关文章:

sql - 如何包含列值大于使用内连接的 SQL 查询中返回值的行?

sql - 何时在 SQL Server 数据仓库中使用用户定义的函数

sql-server - 从 'show execution plan xml' 获取查询中使用的索引列表

sql-server - 如何在Oracle和SQL Server之间进行兼容的SQL查询?

sql - 从 rails 环境中的表中查询不同组中具有最大 id 的所有记录

sql - 添加一个汇总行,其中包含每个子句的总计

python - 使用 Python 和 pyodbc 时到 SQL Server 的域名和连接字符串

.net - 加密列后 SQL 查询性能下降

c# - 从数据库加载大块数据时如何避免 OutOfMemoryException?

sql - 在 SQL Server 2000 中连接结果集中的列