我继承了 SQL Server 2005 3rd 方服务器和数据库,以便研究能够在其上生成报告和仪表板。
在一张桌子上,我发现了一个新图标:一个蓝银倒置键,以及我的其他主键和外键。
当我右键单击它时,上下文菜单为我提供了“脚本约束为”的选项,但是当我尝试“修改”它时,它会打开列设计表单(如主键),然而,它出现在“索引”部分,而不是约束。
有人知道它叫什么名字和用途吗?
我继承了 SQL Server 2005 3rd 方服务器和数据库,以便研究能够在其上生成报告和仪表板。
在一张桌子上,我发现了一个新图标:一个蓝银倒置键,以及我的其他主键和外键。
当我右键单击它时,上下文菜单为我提供了“脚本约束为”的选项,但是当我尝试“修改”它时,它会打开列设计表单(如主键),然而,它出现在“索引”部分,而不是约束。
有人知道它叫什么名字和用途吗?
它表示一个独特的约束。在 SQL Server 中,唯一约束实际上是作为索引实现的;这就是为什么它也出现在
Indexes
节点下的原因(我不能很好地解释为什么它至少没有在Constraints
节点下列出,也不能很好地解释为什么他们选择了一个颠倒的键而不是只是不同的颜色)。您应该在此处看到一个结果,以验证这实际上是作为索引实现的:
您说您看到了“脚本约束为...” - 如果您遵循它,它会为您提供类似以下的脚本:
但是不要运行它,因为这种语法不使用名称,它只会创建第二个冗余的唯一约束......
这是一个非常简单的复制品,证明我在 2014 年即使使用非常基本的语法也能得到颠倒的密钥:
现在,如果您显式创建唯一索引,则可以获得不同的图标(您将看到的唯一区别
sys.indexes
是 的名称和值is_unique_constraint
):有关其他差异,请参阅此 Stack Overflow 答案。