Как получить ограничения ключа столбца из таблицы: INFORMATION_SCHEMA в SQL?
Мне просто нужно получить столбцы с первичным ключом, внешним ключом вместе с этими деталями.
SELECT COLUMN_NAME AS COLUMNNAME,
DATA_TYPE AS DATATYPE,
CHARACTER_MAXIMUM_LENGTH,
IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'My_Table_Name'
INFORMATION_SCHEMA foreign keyЧЕТКО определите свою цель. Вы хотите, чтобы все ограничения? Или просто подмножество, которое можно считать «ключами» (первичными, внешними, уникальными)? Считаете ли вы уникальные ограничения и уникальные индексы одинаковыми?
@Андреас, предыдущая публикация была полезной


Попробуйте sys.indexes и sys.index_columns
На это уже хорошо ответили: Список всех столбцов индекса и индекса в базе данных SQL Server
Это немного сложно.. sys.index возвращает только столбцы, на которых есть ключ.. у нас есть столбцы, у которых нет индекса или ключей.. выше запрос, который я отправил, возвращает все столбцы, доступные для таблицы, вместе с их типом данных и null или не null.. детали.. Я пытаюсь получить индекс/ключ вместе с этими существующими деталями
@goofyui Как насчет первичных ключей и внешних ключей, состоящих из нескольких столбцов? Вы не можете просто перечислить эти с участием в столбце.
Это может помочь...
USE AdventureWorks2012
GO
SELECT t.CONSTRAINT_NAME,t.TABLE_NAME,t.CONSTRAINT_TYPE,c.COLUMN_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS t
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE c ON t.CONSTRAINT_NAME = c.CONSTRAINT_NAME
-- WHERE t.TABLE_NAME = 'ProductVendor'
-- AND t.CONSTRAINT_TYPE = 'PRIMARY KEY'
У меня есть запрос, который возвращает .. имена индексов для всех столбцов .. просто исправление, необходимое в логике моего скрипта. INFORMATION_SCHEMA.COLUMNS внутреннее соединение sys.tables b на a.TABLE_NAME = b.name внутреннее соединение sys.index_columns c на c.object_id = b.object_id внутреннее соединение sys.indexes d на c.object_id = d.object_id и d.index_id = c.index_id ГДЕ a.TABLE_NAME = 'My_Table'
публикация на stackoverflow.com/questions/56926314/… мне очень помогла
INFORMATION_SCHEMA primary key