sql >> Databáze >  >> RDS >> Sqlserver

Jak získat seznam sloupců s jedinečnými omezeními v databázi SQL Server - SQL Server / Výukový program TSQL, část 98

Scénář:

Pracujete jako vývojář serveru SQL Server, budete požádáni o zadání dotazu, který by měl vrátit všechna jedinečná omezení se sloupci, tabulkou a názvem schématu.

Řešení:

Můžeme použít systémové objekty k získání seznamu jedinečných omezení se sloupci, tabulkami a názvem schématu. Níže uvedený dotaz vám vrátí všechna jedinečná omezení se sloupci z databáze 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
 
Provedl jsem výše uvedený dotaz na databázi a dostal jsem se pod výsledky.
Jak získat seznam sloupců s jedinečnými omezeními v databázi SQL Server


Video ukázka:Jak získat všechna jedinečná omezení v databázi SQL Server s názvy sloupců

  1. Podpora výkonu v nastavení hybridního cloudu

  2. PostgreSQL:přetypovaný řetězec k datu DD/MM/RRRR

  3. Lighty pro Oracle

  4. Rozdělte struny správným způsobem – nebo dalším nejlepším způsobem