用于检索数据库中密钥数的SQL查询

时间:2014-06-27 05:44:40

标签: sql count sql-server-2012 key

如何检索数据库中非常表的主键总数和所有辅助键,唯一索引? SQL中是否有任何函数可以让我得到它?

我正在使用SQL Server 2012数据库

2 个答案:

答案 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