sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan får du en liste over kolonner med unikke begrænsninger i SQL Server-databasen - SQL Server / TSQL Tutorial Del 98

Scenarie:

Du arbejder som SQL Server-udvikler, du bliver bedt om at give en forespørgsel, der skal returnere alle de unikke begrænsninger med kolonner, tabel og skemanavn.

Løsning:

Vi kan bruge systemobjekter til at få liste over unikke begrænsninger med kolonner, tabeller og skemanavn. Nedenstående forespørgsel vil returnere alle de unikke begrænsninger med kolonner fra 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
 
Jeg udførte ovenstående forespørgsel på databasen og fik resultaterne under.
Sådan får du kolonneliste med unikke begrænsninger i SQL Server-databasen


Videodemo :Sådan får du alle unikke begrænsninger i SQL Server-database med kolonnenavne

  1. søgekriterieforskel mellem Like vs Contains() i oracle

  2. SQL IN-operatør for begyndere

  3. Henter UTF-8 tekst fra MySQL i R returnerer ????

  4. Fremskridtsrapporteringsforbedringer i PostgreSQL 12