SQL Server 2008: Find out primary/foreign key in Table?

后端 未结 5 863
再見小時候
再見小時候 2021-01-01 02:17

Does anyone know how I can see which are the primary & foreign keys in a table?

EDIT: Thanks for all the responses. I was looking for a SQL Query to do that. Rig

5条回答
  •  时光说笑
    2021-01-01 02:37

    For the primary key on each table, you can use this query:

    SELECT
        kc.name,
        c.NAME
    FROM 
        sys.key_constraints kc
    INNER JOIN 
        sys.index_columns ic ON kc.parent_object_id = ic.object_id
    INNER JOIN 
        sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
    WHERE
        kc.type = 'PK'
    

    and for the foreign key, I believe this query should get you the necessary information:

    SELECT
        OBJECT_NAME(parent_object_id) 'Parent table',
        c.NAME 'Parent column name',
        OBJECT_NAME(referenced_object_id) 'Referenced table',
        cref.NAME 'Referenced column name'
    FROM 
        sys.foreign_key_columns fkc
    INNER JOIN 
        sys.columns c 
           ON fkc.parent_column_id = c.column_id 
              AND fkc.parent_object_id = c.object_id
    INNER JOIN 
        sys.columns cref 
           ON fkc.referenced_column_id = cref.column_id 
              AND fkc.referenced_object_id = cref.object_id
    

    Marc

提交回复
热议问题