SQL Server 2005 - как узнать, является ли поле первичным ключом? - PullRequest
1 голос
/ 10 января 2010

Если у меня есть название поля, можно ли узнать (поиск?), Является ли это PK, и если да, то в какой таблице?

Ответы [ 2 ]

3 голосов
/ 10 января 2010

Использование представлений INFORMATION_SCHEMA:

SELECT  
    T.TABLE_NAME
FROM  
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS T 
    INNER JOIN 
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE K 
        ON T.CONSTRAINT_NAME = K.CONSTRAINT_NAME  
WHERE 
    T.CONSTRAINT_TYPE = 'PRIMARY KEY'  
    AND K.COLUMN_NAME = @column_name
3 голосов
/ 10 января 2010

Это в INFORMATION_SCHEMA.TABLE_CONSTRAINTS

см

http://sqlserverpedia.com/blog/transact-sql-t-sql/how-do-i-select-the-field-name-primary-key-from-all-tables/

Вы должны быть немного осторожны. Теоретически у вас может быть 2 поля с одинаковыми именами в разных таблицах, и поле является первичным ключом в одной из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...