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
