我可以用下面的查询很容易得到的唯一约束列表:获取唯一约束的列清单(在TSQL)?
select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE='UNIQUE'
但是我如何才能使每个唯一约束应用于列的列表?
我可以用下面的查询很容易得到的唯一约束列表:获取唯一约束的列清单(在TSQL)?
select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE='UNIQUE'
但是我如何才能使每个唯一约束应用于列的列表?
见INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
埃德是正确的,列暴露在约束列使用视图,使您的生活更轻松,因为它的krufted SQL。
select TC.Constraint_Name, CC.Column_Name from information_schema.table_constraints TC
inner join information_schema.constraint_column_usage CC on TC.Constraint_Name = CC.Constraint_Name
where TC.constraint_type = 'Unique'
order by TC.Constraint_Name
SELECT *
FROM sys.indexes i
JOIN sys.index_columns ic ON i.index_id = ic.index_id
AND i.object_id = ic.object_id
WHERE i.is_unique_constraint = 1
'index_id'列的值在对象或模式中唯一唯一吗? – 2011-06-08 03:03:05
只为MySQL用户参考, 同样的事情可以用下面的查询来实现:
要查找表
select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE='UNIQUE' and table_name='db_my_table'
要找到独特的列中的任何唯一性约束与所有列
select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME='cons_name' and TABLE_NAME='db_my_table'
012列
找到唯一的列清单,所需的视图
select CONSTRAINT_NAME,COLUMN_NAME,TABLE_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME='cons_name' and TABLE_NAME='db_my_table'
我用使用过滤器'constraint_type *** ***我的检查约束=“CHECK''如:***'其中TC.constraint_type =”检查' AND TC.TABLE_NAME ='Roles2016.UsersCRM' AND CC.Column_Name ='State'' *** – Kiquenet 2016-07-07 07:35:37