【发布时间】:2010-09-17 16:35:54
【问题描述】:
如果表中的特定列有统计信息,我想检查 Transact SQL,如果有,就全部获取。
【问题讨论】:
标签: sql-server-2005 tsql statistics
如果表中的特定列有统计信息,我想检查 Transact SQL,如果有,就全部获取。
【问题讨论】:
标签: sql-server-2005 tsql statistics
这个查询应该可以做到。
我在浏览数据库以查找统计信息的存储过程中使用它。
适用于 SQL Server 2005 和可能的旧版本。
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')
【讨论】: