主要组件列表

时间:2016-10-31 11:21:33

标签: sql-server sql-server-2012 primary-key

我正在从数据库中创建一个列表,我希望在SQL Server中显示构成每个特定表中主键的列数。

例如,如果表A有一列作为主键,表B的复合键为3部分,表C的复合键为2部分,结果为:

Table Name   No. PK Components
----------   -----------------
Table A             1 
Table B             3
Table C             2

我使用INFORMATION_SCHEMAsys多次尝试但失败了。

1 个答案:

答案 0 :(得分:2)

如果您正在查看PK中有多少列,这可以解决您的问题:

SELECT TABLE_NAME , COUNT(COLUMN_NAME) No_PK_Cols
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.' + CONSTRAINT_NAME), 'IsPrimaryKey') = 1
AND TABLE_SCHEMA = 'YourSchema'
GROUP BY TABLE_NAME