2010-04-20 19 views
25

Eşsiz kısıtlamaların listesini aşağıdaki sorgu ile oldukça kolay bir şekilde bulabilirim:Benzersiz kısıtlama sütunları listesini (SQL'de) alın.

select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE='UNIQUE' 

Ancak, her bir sınırlamanın uygulandığı sütunların listesini nasıl alabilirim?

cevap

24

bunun için krufted sql, hayatınızı kolaylaştırmak için, sütunlar sınırlama sütunu kullanım görünümünde maruz, INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE

36

Ed doğrudur bakın. Sadece mySQL kullanıcıların başvuru için

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 
+0

= '***' TC.constraint_type = CHECK'' Örneğin' ile benzersiz sütun listesini bulmak için ' VE TC.TABLE_NAME =' Roles2016.UsersCRM ' VE CC.Column_Name =' Durum '' *** – Kiquenet

1
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 
+0

'index_id' sütununun değeri yalnızca bir nesne veya şema içinde benzersizdir? –

1

, Aynı şey aşağıda sorgu ile elde edilebilir:

bir tablo

select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE='UNIQUE' and table_name='db_my_table' 

benzersiz sütun bulmak için herhangi bir benzersiz kısıtlama bulmak için tüm sütunla birlikte listeleme

012 KONTROL:

gerekli görünümde ben *** filtre `constraint_type kullanarak *** kontrol kısıtlamaları için kullanmak

select CONSTRAINT_NAME,COLUMN_NAME,TABLE_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME='cons_name' and TABLE_NAME='db_my_table'