Skenario:
Anda bekerja sebagai pengembang SQL Server, Anda diminta untuk memberikan kueri yang harus mengembalikan semua Batasan Unik dengan Nama Kolom, Tabel, dan Skema.Solusi:
Kita dapat menggunakan objek sistem untuk mendapatkan daftar batasan unik dengan kolom, tabel, dan nama skema. Kueri di bawah ini akan mengembalikan Anda semua batasan unik dengan kolom dari database SQL Server.;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
Saya mengeksekusi query di atas pada database dan mendapatkan hasil di bawah ini.
Cara mendapatkan Daftar Kolom dengan Batasan Unik di Database SQL Server |
Video Demo :Cara mendapatkan semua Constraint unik di Database SQL Server dengan Nama Kolom