微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我试图记住一些sql语法,我已经得到了ALTER TABLE ADD CONSTRAINT语法.当我说使用这种语法添加FOREIGN KEY或PRIMARY KEY约束时,我相信我是正确的,sql server会自动创建索引来支持约束操作. (这是真的……还是仅在PK而不是FK?)

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

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

谢谢你的帮助.

赛斯

解决方法

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

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

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

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

原文地址:https://www.jb51.cc/mssql/74696.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐