2010-04-20 8 views

Répondre

24

Voir INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE

36

Ed est correcte, les colonnes sont exposées à la vue de l'utilisation de la colonne de contrainte, pour rendre votre vie plus facile, le krufted sql pour elle.

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

J'utilise pour mes *** vérifier les contraintes *** 'l'aide du filtre type_contrainte = « CHECK'' Par exemple: *** 'où TC.constraint_type = » CHÈQUE ' ET TC.TABLE_NAME =' Roles2016.UsersCRM ' ET CC.Column_Name =' State'' *** – 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

La valeur de la colonne 'index_id' est uniquement unique dans un objet ou un schéma? –

1

Juste pour référence des utilisateurs MySql, même chose peut être réalisé avec les requêtes suivantes:

Pour trouver une contrainte unique sur une table

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

Pour colonne unique, liste avec toutes les colonnes

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

pour trouver la liste des colonnes unique avec vue requise

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