A simple script to show all the indexes and statistics.
-- Displays list of all indexes and statistics. DECLARE @sTableName sysname SET @sTableName = 'YourTableName' SELECT OBJECT_NAME(id) AS 'Table Name', CASE WHEN name IS NULL THEN '< Heap Table >' ELSE name END AS 'I or S Name', CASE INDEXPROPERTY(id, name, 'IsStatistics') WHEN 1 THEN 'Statistic' ELSE CASE INDEXPROPERTY(id, name, 'indexid') WHEN 0 THEN '-' ELSE 'Index' END END AS 'I or S ?', CASE INDEXPROPERTY(id, name, 'IsStatistics') WHEN 1 THEN '-' ELSE CASE INDEXPROPERTY(id, name, 'indexid') WHEN 0 THEN '-' ELSE CAST(INDEXPROPERTY(id, name, 'indexid') AS sysname) END END AS 'Index ID', CASE INDEXPROPERTY(id, name, 'IsStatistics') WHEN 0 THEN CASE INDEXPROPERTY(id, name, 'indexid') WHEN 0 THEN '-' WHEN 1 THEN 'Clustered' ELSE 'Non-Clustered' END ELSE '-' END AS 'Index Type', CASE INDEXPROPERTY(id, name, 'IsUnique') WHEN 1 THEN 'Unique' ELSE '-' END AS 'Unique?' FROM sysindexes WHERE INDEXPROPERTY(id, name, 'IsHypothetical') = 0 -- AND id = OBJECT_ID(@sTableName) -- Restrict by table. -- AND INDEXPROPERTY(id, name, 'IsStatistics') = 0 -- 0 = Index, 1 = Statistic -- AND INDEXPROPERTY(id, name, 'IsUnique') = 0 -- Restrict by index type. ORDER BY 'Table Name', 'Index Type'
0 comments:
Post a Comment