在 SQL 中使用 INFORMATION_SCHEMA.TABLE_CONSTRAINTS 查找约束列名

Abh*_*yak 2 database sql-server sql-server-2005 sql-server-2008-r2 sql-server-2012

我在表中设置了一个主键约束 - “tCustomerSessions”,名称为“PK_tCustomerSessions”。

以下是我的查询 -

SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME = 'tCustomerSessions'
    AND Constraint_Type = 'PRIMARY KEY'
Run Code Online (Sandbox Code Playgroud)

在这里,我如何获取已设置主键约束的列的名称?

小智 5

SELECT
    tc.CONSTRAINT_NAME
  , ccu.COLUMN_NAME
FROM
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tc
    JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS ccu ON ccu.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
WHERE
    tc.TABLE_NAME = 'tCustomerSessions'
    AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
Run Code Online (Sandbox Code Playgroud)