Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да получите списък с колони с уникални ограничения в базата данни на SQL Server - SQL Server / TSQL урок, част 98

Сценарий:

Вие работите като разработчик на SQL Server, от вас се иска да предоставите заявка, която трябва да върне цялото уникално ограничение с колони, таблица и име на схема.

Решение:

Можем да използваме системни обекти, за да получим списък с уникални ограничения с колони, таблици и име на схема. Заявката по-долу ще ви върне всички уникални ограничения с колони от базата данни на 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
 
Изпълних горната заявка в базата данни и получих резултатите по-долу.
Как да получите списък с колони с уникални ограничения в базата данни на SQL Server


Видео демонстрация:Как да получите всички уникални ограничения в базата данни на SQL Server с имена на колони

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Работа с данни на Salesforce.com в SQL Server Reporting Services

  2. Не може да се зареди насипно. Код за грешка в операционната система 5 (Достъпът е отказан.)

  3. Защо имената на таблици в SQL Server започват с dbo?

  4. SQL Server v.Next :STRING_AGG производителност, част 2

  5. WinRT System.Data - Свързване към SQL