Answers:
这表示唯一的约束。在SQL Server中,唯一约束实际上是作为幕后的索引实现的;这就是为什么它也出现在Indexes
节点下(我不能很好地解释为什么它至少没有在Constraints
节点下列出,或者为什么他们选择了上下颠倒的钥匙而不是仅仅用不同的颜色)。
您应该在此处看到一个结果,以验证它是否实际上已作为索引实现:
SELECT index_id, type_desc, is_unique_constraint
FROM sys.indexes
WHERE name = N'IX_tblCustIndex';
您说您看到了“脚本约束为...”-如果继续进行操作,它将为您提供一个类似于以下内容的脚本:
ALTER TABLE [dbo].[tblCustIndex] ADD UNIQUE NONCLUSTERED
(
[some_column] ASC
) WITH (...a bunch of default options...)
但是不要运行它,因为此语法不使用名称,只会创建第二个冗余的唯一约束...
这是一个非常简单的再现,并证明即使在使用非常基本的语法的情况下,我在2014年也获得了颠倒的钥匙:
CREATE TABLE dbo.foo(id INT UNIQUE);
现在,如果您显式创建一个唯一索引,则可以得到一个不同的图标(唯一的区别sys.indexes
是的名称和值is_unique_constraint
):
对于其他差异,请参见此堆栈溢出答案。