Как получить статистику, существующую по столбцу, если таковая имеется?
-
03-07-2019 - |
Вопрос
Я хочу проверить в Transact SQL, есть ли у определенного столбца в таблице статистика, и если да, то получить их все.
Решение
Этот запрос должен это сделать.
Я использую его в сохраненном процессе, который просматривает базу данных, чтобы найти статистику.
Работает в 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')
Не связан с StackOverflow