gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 19:00:36 24 4
gpt4 key购买 nike

我正在尝试记住一些 sql 语法,并且已经掌握了 ALTER TABLE ADD CONSTRAINT 语法。当您使用此语法添加 FOREIGN KEY 或 PRIMARY KEY 约束时,sql server 会自动创建索引来支持约束操作,我相信我是正确的。 (这是真的吗……还是只在PK上如此,在FK上却不然?)

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

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

感谢您的帮助。

赛斯

最佳答案

当您添加主键时,实际上添加了唯一索引。该添加是否导致新索引成为聚集索引取决于您是否指定它为非聚集索引。如果在添加主键约束时没有指定它是聚集还是非聚集,则如果表中不存在聚集约束或索引,则它将是聚集的,否则它将是非聚集的。

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

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

无法使用 DROP INDEX 删除因创建约束而创建的索引。

关于sql-server - 当删除约束时,支持索引也会被删除吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2291911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com