sql-server – 当删除约束时,支持索引也会被删除吗?

前端之家收集整理的这篇文章主要介绍了sql-server – 当删除约束时,支持索引也会被删除吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图记住一些sql语法,我已经得到了ALTER TABLE ADD CONSTRAINT语法.当我说使用这种语法添加FOREIGN KEY或PRIMARY KEY约束时,我相信我是正确的,sql server会自动创建索引来支持约束操作. (这是真的……还是仅在PK而不是FK?)

如果是这样,当您使用ALTER TABLE DROP CONSTRAINT语法时…支持索引是否也会自动删除?可以明确删除这些隐式支持索引吗?如果是这样,CONSTRAINT会自动删除吗?

我只是想知道它是如何工作的“幕后”.谷歌搜索没有帮助.我想我可以查询一些sys表来发现真相,但我想我会在这里试试.

谢谢你的帮助.

赛斯

解决方法

添加主键时,实际上会添加唯一索引.添加是否导致新索引被群集取决于您是否指定它是非群集的.如果在添加主键约束时,您没有指定它是聚簇约束还是非聚簇约束,则如果表上尚不存在聚簇约束或索引,则它将被聚类,否则它将是非聚簇的.

添加外键时,不会自动创建索引.

删除约束时,将删除由于创建约束而创建的任何索引.但是,如果您尝试删除唯一或主键约束并且有引用它的外键约束,则会出现错误.

使用DROP INDEX无法删除由于创建约束而创建的索引.

猜你在找的MsSQL相关文章