Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于检索数据库中的密钥数的SQL查询_Sql_Count_Sql Server 2012_Key - Fatal编程技术网

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

用于检索数据库中的密钥数的SQL查询,sql,count,sql-server-2012,key,Sql,Count,Sql Server 2012,Key,如何检索数据库中每个表的主键、所有辅助键、唯一索引的总数?SQL中有没有函数可以让我得到这个 我使用的是SQL Server 2012数据库此查询针对的是系统索引系统目录视图可能会提供您所需的内容(或者至少是一个起点): 它列出当前数据库中所有表的所有索引,并显示索引名、表名、索引类型(集群或非集群)以及主键、唯一索引等的标志 您可以阅读更多关于MSDN的信息以及他们可能为您提供的信息 试试这个 Select object_name(object_id), sum(case

如何检索数据库中每个表的主键、所有辅助键、唯一索引的总数?SQL中有没有函数可以让我得到这个


我使用的是SQL Server 2012数据库

此查询针对的是
系统索引
系统目录视图可能会提供您所需的内容(或者至少是一个起点):

它列出当前数据库中所有表的所有索引,并显示索引名、表名、索引类型(集群或非集群)以及主键、唯一索引等的标志

您可以阅读更多关于MSDN的信息以及他们可能为您提供的信息

试试这个

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

我正在使用SQL Server 2012 databaseEXEC SP_帮助“表名称”。我想你想要的是计数,而不是在你要求计数时显示它们
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