Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak uzyskać listę kolumn z unikalnymi ograniczeniami w bazie danych SQL Server — samouczek SQL Server / TSQL część 98?

Scenariusz:

Pracujesz jako programista SQL Server, zostaniesz poproszony o dostarczenie zapytania, które powinno zwrócić wszystkie unikalne ograniczenia z kolumnami, tabelą i nazwą schematu.

Rozwiązanie:

Możemy użyć obiektów systemowych, aby uzyskać listę unikalnych ograniczeń z kolumnami, tabelami i nazwą schematu. Poniższe zapytanie zwróci wszystkie unikalne ograniczenia z kolumnami z bazy danych 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
 
Wykonałem powyższe zapytanie na bazie danych i otrzymałem wyniki poniżej.
Jak uzyskać listę kolumn z unikalnymi ograniczeniami w bazie danych SQL Server


Wideo demonstracyjne:jak uzyskać wszystkie unikalne ograniczenia w bazie danych SQL Server z nazwami kolumn

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobierz dane z procedury składowanej, która ma wiele zestawów wyników

  2. Serwer Adaptive Server jest niedostępny lub nie występuje błąd podczas łączenia się z serwerem SQL z PHP

  3. Tworzenie złożonego klucza podstawowego w SQL Server

  4. SQL Server podzielił plik CSV na wiele wierszy

  5. Wartości oddzielone przecinkami za pomocą zapytania SQL