Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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 server 2005 如何获取列上现有的统计信息(如果有)?_Sql Server 2005_Tsql_Statistics - Fatal编程技术网

Sql server 2005 如何获取列上现有的统计信息(如果有)?

Sql server 2005 如何获取列上现有的统计信息(如果有)?,sql-server-2005,tsql,statistics,Sql Server 2005,Tsql,Statistics,我想在Transact-SQL中检查表中的特定列是否有统计信息,如果有,则获取所有统计信息。此查询应该可以做到这一点。 我在一个存储过程中使用它来浏览数据库以查找统计信息。 适用于SQLServer2005,可能也适用于旧版本 SELECT S.NAME FROM SYS.OBJECTS AS O INNER JOIN SYS.STATS AS S ON O.OBJECT_ID = S.OBJECT_ID INNER JOIN SYS.STATS

我想在Transact-SQL中检查表中的特定列是否有统计信息,如果有,则获取所有统计信息。

此查询应该可以做到这一点。
我在一个存储过程中使用它来浏览数据库以查找统计信息。
适用于SQLServer2005,可能也适用于旧版本

SELECT S.NAME
FROM   SYS.OBJECTS AS O
       INNER JOIN SYS.STATS AS S
         ON O.OBJECT_ID = S.OBJECT_ID
       INNER JOIN SYS.STATS_COLUMNS AS SC
         ON SC.OBJECT_ID = S.OBJECT_ID
            AND S.STATS_ID = SC.STATS_ID
WHERE  (O.OBJECT_ID = OBJECT_ID('MyTable','local'))
       AND (O.TYPE IN ('U'))
       AND (INDEXPROPERTY(S.OBJECT_ID,S.NAME,'IsStatistics') = 1)  /* only stats */
       AND (COL_NAME(SC.OBJECT_ID,SC.COLUMN_ID) = 'MyColumn')
如果您使用此查询删除用户创建的查询,则添加另一个where部分“AND(S.USER_CREATED=1)”很有趣,方法如下: