sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man får en lista över kolumner med unika begränsningar i SQL Server Database - SQL Server / TSQL Tutorial Del 98

Scenario:

Du arbetar som SQL Server-utvecklare, du ombeds att tillhandahålla en fråga som bör returnera alla de unika begränsningarna med kolumner, tabell och schemanamn.

Lösning:

Vi kan använda systemobjekt för att få lista över unika begränsningar med kolumner, tabeller och schemanamn. Frågan nedan ger dig alla unika begränsningar med kolumner från SQL Server-databasen.

;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
 
Jag körde ovanstående fråga på databasen och fick resultat under.
Hur får du kolumnlista med unika begränsningar i SQL Server Database


Videodemo :Hur man får alla unika begränsningar i SQL Server-databas med kolumnnamn

  1. Spara data på arabiska i MySQL-databasen

  2. Hur man arbetar med datumfunktioner i Oracle sql

  3. "O" i ORDBMS:PostgreSQL Inheritance

  4. ORA-12516, TNS:listener kunde inte hitta tillgänglig hanterare