我可以用下面的查詢很容易得到的唯一約束列表:獲取唯一約束的列清單(在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