如果我正确理解这个Index
答案,则with Is Unqiue
on 和 a之间的区别Unique Key
主要是表面上的。
在 MSSQL 界面中,当我切换到唯一键时,该键Ignore Duplicate Keys
被禁用。
我理解有问题吗?我想Ignore Duplicate Keys
在这种情况下使用。Index
当我执行 an withIs Unique
与 a时,会产生什么后果Unique Key
?
输入(启用下拉菜单)Index
:Is Unique
类型Unique Key
(禁用下拉菜单):
不,关键是唯一约束只是声明性实体,您只需声明表中的某些字段或其组合,
unique
并且您不关心如何实现它,例如我的同事开发人员使用某些实体框架只需在表上单击一些鼠标,而不必考虑它们真正创建的内容,这将适用于任何 RDBMS。所以他们甚至不知道索引,但有基本的数据库知识,这允许他们声明唯一性。这里是物理实现,每个唯一约束都是通过在这些字段上创建最简单的唯一索引来实现的,对于应用程序开发人员来说这已经足够了,但您可能希望完全控制它,因为您想将其用作索引,而不仅仅是约束,索引是另一个可以使用更多选项的实体,例如,您可能希望在此唯一索引的 include 子句中包含某些字段,因为所有查询都通过传递唯一键值来检索此附加字段,但您只是不希望维护过于相似的索引并且在约束下
declaration
你不能这样做。另一个例子是您想要使用的选项,ignore_dup_key
或者您只想使所有值都唯一not null
,在这种情况下,您也使用唯一索引,并且不能仅使用唯一声明,并且您的filtered index
定义可能更复杂,您可能只想强制一个客户端 ID 的唯一性,并且仅为该特定 ClientId 创建唯一过滤索引