Szenario:
Sie arbeiten als SQL Server-Entwickler und werden gebeten, eine Abfrage bereitzustellen, die alle Unique Constraints mit Spalten-, Tabellen- und Schemanamen zurückgeben soll.Lösung:
Wir können Systemobjekte verwenden, um eine Liste eindeutiger Einschränkungen mit Spalten, Tabellen und Schemanamen zu erhalten. Die folgende Abfrage gibt Ihnen alle eindeutigen Einschränkungen mit Spalten aus der SQL Server-Datenbank zurück.;WITH CTE_UQ AS ( 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 FOR XML path('') ), 1, 1, '') UniqueColumnList FROM CTE_UQ o GROUP BY TableSchema ,TableName ,UniqueConstraintName ,ConstraintType
Ich habe die obige Abfrage in der Datenbank ausgeführt und die folgenden Ergebnisse erhalten.
So erhalten Sie eine Spaltenliste mit eindeutigen Einschränkungen in der SQL Server-Datenbank |
Video-Demo:So erhalten Sie alle eindeutigen Einschränkungen in der SQL Server-Datenbank mit Spaltennamen