我正在从数据库中创建一个列表,我希望在SQL Server中显示构成每个特定表中主键的列数。
例如,如果表A有一列作为主键,表B的复合键为3部分,表C的复合键为2部分,结果为:
Table Name No. PK Components
---------- -----------------
Table A 1
Table B 3
Table C 2
我使用INFORMATION_SCHEMA
和sys
多次尝试但失败了。
答案 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