加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com/)- 数据分析、网络、云渲染、应用安全、大数据!
当前位置: 首页 > 数据库 > MsSql > 正文

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

发布时间:2021-02-20 09:24:51 所属栏目:MsSql 来源:互联网
导读:我试图记住一些sql语法,我已经得到了ALTER TABLE ADD CONSTRAINT语法.当我说使用这种语法添加FOREIGN KEY或PRIMARY KEY约束时,我相信我是正确的,sql server会自动创建索引来支持约束操作. (这是真的……还是仅在PK而不是FK?) 如果是这样,当您使用ALTER TABLE

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

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

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

谢谢你的帮助.

赛斯

解决方法

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

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

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

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

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读