Wie kommt man die Statistiken auf einer Säule vorhanden, wenn überhaupt?
-
03-07-2019 - |
Frage
Ich möchte in Transact SQL überprüfen, ob eine bestimmte Spalte in einer Tabelle Statistik hat und wenn ja, bekommen sie alle.
Lösung
Diese Abfrage sollte es tun.
Ich benutze es in einer gespeicherten proc, die die DB durchsuchen Statistiken zu finden.
Works in SQL Server 2005 und wahrscheinlich ältere Version als auch.
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')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow