我无法删除索引,因为某些表将其用作外键
消息3723,级别16,状态6,第1行没有显式的DROP INDEX
在索引'tbl1.ix_cox'上允许。它被用于外键
约束执行。
我尝试在删除之前先禁用索引
ALTER INDEX ix_cox On tbl1
DISABLE
Go
但是仍然无法删除它。
我真的需要在使用该索引的那些表上删除外键吗?因为它大约有30张桌子。
最佳答案
如果创建定义了PRIMARY KEY或UNIQUE约束(https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-index-transact-sql?view=sql-server-2017)的索引,您将得到相同的异常。
在这种情况下,简单的解决方案是改用ALTER-TABLE-command:
ALTER TABLE tbl1 DROP CONSTRAINT ix_cox