gpt4 book ai didi

sql-server - 唯一约束和唯一索引有什么区别

转载 作者:行者123 更新时间:2023-12-02 10:16:31 27 4
gpt4 key购买 nike

下面两个语句有什么区别?

alter table [dbo].[Demo] add constraint [UC_Demo_Code] unique ( [Code] )
go
create unique nonclustered index [UK_Demo_Code] on [dbo].[Demo] ( [NB_Code] )
go

约束是否有索引来帮助其强制唯一性,或者是否会在每次插入/更新时执行表扫描?

最佳答案

“逻辑”效果是相同的——只有唯一的值可以加载到表中。 (值得一提的是,如果该列可为空,则只能插入 1 行带有 NULL 的行。)

物理效果是相同的——在表上建立唯一索引。它可以是集群的,也可以是非集群的。

唯一真正的区别在于元数据,即描述存储在系统表中的数据库的信息。第一种方式,它在内部记录为索引,第二种方式,它被记录为约束——即使净效应是相同的。这意味着最终唯一的区别是创建它和将来更改它所需的代码。

(对于 2005 年的 SQL 7.0 来说都是如此,如果他们在 2008 年更改它,我会感到非常惊讶)。

关于sql-server - 唯一约束和唯一索引有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2675474/

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