SQL Server 2005 - 如何知道字段是否为主键?

时间:2010-01-10 19:39:01

标签: sql sql-server

如果我有一个字段的名称,那么知道(查找?)这是否是PK,如果是,那么在哪个表中?

2 个答案:

答案 0 :(得分:3)

位于INFORMATION_SCHEMA.TABLE_CONSTRAINTS

请参阅:

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

你必须要小心一点。理论上,您可以在不同的表中使用两个具有相同名称的字段,并且该字段是其中一个中的主键。

答案 1 :(得分:3)

使用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