使用SQL Server:
Alter Table <table_name> Add Constraint <Constraint_Name> Unique (<Column1,Column2>)
我在桌面上设置了一个唯一的键约束,这个唯一键由2列组成,即column1
和column2
。
如果我有Constraint_Name
,那么有没有办法找到这个约束是否是复合的,如果是复合的,那么它是从哪个列开始的?
答案 0 :(得分:0)
SELECT *
FROM <table_name>
WHERE <column1> = <something> AND <column2> = <something_else>
是的,这将是一个复合键,因为它的组成超过1列。 MSDN Primer on Keys
答案 1 :(得分:0)
您可以根据object_id
和index_id
加入sys.indexes
和sys.index_columns
。您使用约束名称来匹配sys.indexes
中的名称。返回的结果行数将告诉您索引中有多少列,因此单行结果位于一列上,多行结果是多列索引。
sys.index_columns
页面上的示例显示了如何使用COL_NAME
函数转换回列名称,或者您可以加入sys.columns
以获取该数据。< / p>
(唯一键约束实现为具有相同名称的唯一索引)