sql-server - 主要关键零部件 list

标签 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 但失败了。

最佳答案

如果您正在查看 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

关于sql-server - 主要关键零部件 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40341165/

相关文章:

c# - Entity Framework 核心缺乏适度的 LINQ 查询支持的最佳解决方案是什么?

sql-server - 选择在 24 小时时间范围内创建的记录

sqlite - 在 sqlite3 中,一个表怎么可能有一个主键的多个条目?

SQL Server组合键问题

sql-server - 更新语句中的自动增量导致大表上出现重复值

php - mysql 返回主键重复错误

sql-server - 主机文件中的 SQL 服务器名称

sql - 在表级别启用 CDC 时出错

sql-server - SQL 查询的 ColdFusion 单引号问题

sql-server-2012 - Log4net 使用自定义附加程序将自定义对象写入 SQL 数据库?