Phi*_*ppe 11 sql-server-2005 ssms
我继承了 SQL Server 2005 3rd 方服务器和数据库,以便能够生成报告和仪表板。
在一张桌子上,我发现了一个新图标:一个蓝银倒置键,旁边是我的其他主键和外键。
当我右键单击它时,上下文菜单为我提供了“脚本约束为”的选项,但是当我尝试“修改”它时,它会打开列设计表单(如主键),但是,它出现在“索引”部分,而不是约束。
有人知道它叫什么,用来做什么吗?

Aar*_*and 12
它表示一个独特的约束。在 SQL Server 中,唯一约束实际上是作为索引实现的;这就是它也出现在Indexes节点下的原因(我无法很好地解释为什么它至少没有列在Constraints节点下,也不能很好地解释为什么他们选择了颠倒的键而不是不同的颜色)。
您应该在这里看到一个结果,以验证这实际上是作为索引实现的:
SELECT index_id, type_desc, is_unique_constraint
FROM sys.indexes
WHERE name = N'IX_tblCustIndex';
Run Code Online (Sandbox Code Playgroud)
你说你看到了“Script Constraint As...”——如果你坚持下去,它会为你提供一个类似的脚本:
ALTER TABLE [dbo].[tblCustIndex] ADD UNIQUE NONCLUSTERED
(
[some_column] ASC
) WITH (...a bunch of default options...)
Run Code Online (Sandbox Code Playgroud)
但是不要运行它,因为此语法不使用名称,它只会创建第二个冗余的唯一约束...
这是一个非常简单的重现,证明即使使用非常基本的语法,我也能在 2014 年得到颠倒的键:
CREATE TABLE dbo.foo(id INT UNIQUE);
Run Code Online (Sandbox Code Playgroud)
现在,如果您显式创建唯一索引,您可以获得不同的图标(您将看到的唯一区别sys.indexes是 的名称和值is_unique_constraint):
有关其他差异,请参阅此堆栈溢出答案。
| 归档时间: |
|
| 查看次数: |
6775 次 |
| 最近记录: |