2017-09-15 64 views
0

组合键或不使用SQL server:检查唯一密钥在SQL Server

Alter Table <table_name> Add Constraint <Constraint_Name> Unique (<Column1,Column2>) 

我做一个独特的键约束在我的桌子,这唯一的密钥是由2列,即column1column2

如果我有Constraint_Name,那么有没有什么办法可以找到这个约束是否合成,如果合成,那么它是从哪个列创建的?

回答

0
SELECT * 
FROM <table_name> 
WHERE <column1> = <something> AND <column2> = <something_else> 

是这将是一个复合键,因为它是超过1列组成MSDN Primer on Keys

0

你可以加入sys.indexessys.index_columns一起基于object_idindex_id。您可以使用约束名称来匹配sys.indexes中的名称。返回的结果行数将告诉您索引中有多少列,因此单行结果在一列上,多行结果是多列索引。

sys.index_columns页面上的示例显示如何使用COL_NAME函数转换回列名称,或者您也可以加入sys.columns以获取该数据。

(唯一键约束实现为具有相同名称的唯一索引)