如何检索数据库中非常表的主键总数和所有辅助键,唯一索引? SQL中是否有任何函数可以让我得到它?
我正在使用SQL Server 2012数据库
答案 0 :(得分:0)
针对sys.indexes
系统目录视图的查询可能会为您提供所需(或至少它是一个起点):
SELECT
IndexName = i.name,
TableName = OBJECT_NAME(i.object_id),
i.index_id,
i.type_desc,
i.is_unique,
i.is_primary_key,
i.is_unique_constraint
FROM sys.indexes i
它列出了当前数据库中所有表的所有索引,并显示了索引名称,表名,索引类型(聚簇或非聚簇)以及主键,唯一索引等的标志。
您可以阅读有关SQL Server catalog views的更多信息以及他们可能在MSDN上为您提供的信息!
答案 1 :(得分:0)
试试这个
Select object_name(object_id),
sum(case when is_primary_key = 1 then 1 else 0 end) 'Primary_Count',
sum(case when is_unique_constraint = 1 then 1 else 0 end) 'Unique_Count'
from sys.indexes m
group by object_id,case when is_primary_key = 1 then is_primary_key else is_unique_constraint end