Получить уникальный список столбцов ограничений (в TSQL)? - PullRequest
34 голосов
/ 20 апреля 2010

Я могу довольно легко получить список уникальных ограничений с помощью следующего запроса:

select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE='UNIQUE'

Но как мне получить список столбцов, к которым применяется каждое уникальное ограничение?

Ответы [ 4 ]

46 голосов
/ 20 апреля 2010

Ed правильно, столбцы отображаются в представлении использования столбцов ограничений, вот SQL для него.

select TC.Constraint_Name, CC.Column_Name from information_schema.table_constraints TC
inner join information_schema.constraint_column_usage CC on TC.Constraint_Name = CC.Constraint_Name
where TC.constraint_type = 'Unique'
order by TC.Constraint_Name
28 голосов
/ 20 апреля 2010

См. INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE

3 голосов
/ 20 апреля 2010
SELECT *
FROM    sys.indexes i
        JOIN sys.index_columns ic
            ON i.index_id = ic.index_id
               AND i.object_id = ic.object_id
WHERE i.is_unique_constraint = 1;
0 голосов
/ 14 мая 2014

Просто для справки пользователей mySQL. То же самое можно сделать с помощью следующих запросов:

Чтобы найти любое уникальное ограничение для таблицы

select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE='UNIQUE' and table_name='db_my_table'

Чтобы найти уникальный список столбцов со всеми столбцами

select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME='cons_name' and TABLE_NAME='db_my_table'

для поиска уникального списка столбцов с требуемым представлением

select CONSTRAINT_NAME,COLUMN_NAME,TABLE_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME='cons_name' and TABLE_NAME='db_my_table'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...