【发布时间】:2014-11-28 10:06:49
【问题描述】:
我有两张桌子:
attCatAppSet, attCatAppSet_translation
在这两个表上,我对 2 个列(不是主键)应用了唯一约束,因此列对值不能重复。
GO
ALTER TABLE attCatAppSet
ADD CONSTRAINT UQ_category_id_setOrder
UNIQUE(category_id, setOrder)
GO
GO
ALTER TABLE attCatAppSet_translation
ADD CONSTRAINT UQ_siteLanguage_id_attCatAppSet_id
UNIQUE(siteLanguage_id, attCatAppSet_id)
GO
结果:查看对象资源管理器,我得到了 2 种不同的命令实现。 在表 attCatAppSet 上,存在唯一索引约束。 在表 attCatAppSet_translation 上,存在唯一索引和唯一键约束。
如果我打电话,同样的事情会显示:
GO
sp_helpIndex attCatAppSet
GO
sp_helpIndex attCatAppSet_translation
- 为什么我有两种不同的查询实现方式?
- 这两个结果有什么区别?
【问题讨论】:
-
乍一看,siteLanguage_id 有外键约束,而 setOrder 没有。
-
两个约束都至少有一个 FK 列,但这应该不是问题。
标签: sql-server tsql unique-constraint unique-key unique-index