Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara mendapatkan daftar kolom dengan Batasan Unik di Database SQL Server - Tutorial SQL Server / TSQL Bagian 98

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa Anda membuat Tampilan dalam database?

  2. Kueri Select SUM saya mengembalikan nol. Itu harus mengembalikan 0

  3. Contoh SQL Server UNTUK JSON AUTO (T-SQL)

  4. Peregangan Database di SQL Server 2016 RTM

  5. Tidak dapat terhubung ke localDB di VS2012 – Terjadi kesalahan terkait jaringan atau spesifik saat membuat koneksi ke SQL Server...