Как получить статистику по столбцу, если она есть? - PullRequest
3 голосов
/ 17 октября 2008

Я хочу проверить в Transact SQL, есть ли у определенного столбца в таблице статистика, и если да, чтобы получить их все.

1 Ответ

2 голосов
/ 17 октября 2008

Этот запрос должен сделать это.
Я использую его в хранимой процедуре, которая просматривает БД для поиска статистики. Работает в 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...