Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment obtenir la liste des colonnes avec des contraintes uniques dans la base de données SQL Server - Tutoriel SQL Server / TSQL Partie 98

Scénario :

Vous travaillez en tant que développeur SQL Server, vous êtes invité à fournir une requête qui doit renvoyer toutes les contraintes uniques avec les colonnes, la table et le nom du schéma.

Solution :

Nous pouvons utiliser des objets système pour obtenir une liste de contraintes uniques avec des colonnes, des tables et un nom de schéma. La requête ci-dessous vous renverra toutes les contraintes uniques avec des colonnes de la base de données SQL Server.

;WITH CTE_UQAS ( SELECT t.Table_Schema AS TableSchema ,t.table_name AS TableName ,c.column_name AS ColumnName , t.constraint_name AS UniqueConstraintName ,t.constraint_type AS ConstraintType FROM information_schema.table_constraints t LEFT JOIN information_schema.key_column_usage c ON t.constraint_catalog =c.constraint_catalog AND t.constraint_schema =c.constraint_schema AND t.constraint_name =c.constraint_name WHERE t.constraint_type ='UNIQUE' )SELECT TableSchema ,TableName ,UniqueConstraintName ,ConstraintType ,stuff(( SELECT ',' + ColumnName FROM CTE_UQ i WHERE i.TableSchema =o.TableSchema AND i.TableName =o.TableName AND i.UniqueConstraintName =o.UniqueConstraintName POUR chemin XML('') ), 1, 1, '') UniqueColumnList FROM CTE_UQ oGROUP BY TableSchema ,TableName ,UniqueConstraintName ,ConstraintType
 
J'ai exécuté la requête ci-dessus sur la base de données et j'ai obtenu les résultats ci-dessous.
Comment obtenir une liste de colonnes avec des contraintes uniques dans la base de données SQL Server


Démo vidéo :comment obtenir toutes les contraintes uniques dans la base de données SQL Server avec des noms de colonnes