テーブル内の特定の列に統計があるかどうかを Transact SQL にチェックインし、統計がある場合はそれらをすべて取得したいと考えています。
2414 次
1 に答える
2
このクエリはそれを行う必要があります。
DB を参照して統計情報を検索するストアド プロシージャで使用します。
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')
于 2008-10-17T05:35:15.073 に答える