SQL查询当前索引
1 SELECT DELETE_INDEX_CMD = 'DROP INDEX ' + INDEXNAME + ' ON ' + TABLENAME, 2 * 3 FROM 4 ( 5 SELECT TOP 10000000 6 CASE 7 WHEN t.[type] = 'U' THEN 8 '表' 9 WHEN t.[type] = 'V' THEN 10 '视图' 11 END AS '类型', 12 SCHEMA_NAME(t.schema_id) + '.' + t.[name] AS TABLENAME, 13 INDEXNAME = i.[name], 14 COLUMNNAME = SUBSTRING(column_names, 1, LEN(column_names) - 1), 15 CASE 16 WHEN i.[type] = 1 THEN 17 '聚集索引' 18 WHEN i.[type] = 2 THEN 19 '非聚集索引' 20 WHEN i.[type] = 3 THEN 21 'XML索引' 22 WHEN i.[type] = 4 THEN 23 '空间索引' 24 WHEN i.[type] = 5 THEN 25 '聚簇列存储索引' 26 WHEN i.[type] = 6 THEN 27 '非聚集列存储索引' 28 WHEN i.[type] = 7 THEN 29 '非聚集哈希索引' 30 END AS '索引类型', 31 CASE 32 WHEN i.is_unique = 1 THEN 33 '唯一' 34 ELSE 35 '不唯一' 36 END AS '索引是否唯一' 37 FROM sys.objects t 38 INNER JOIN sys.indexes i 39 ON t.object_id = i.object_id 40 CROSS APPLY 41 ( 42 SELECT col.[name] + ', ' 43 FROM sys.index_columns ic 44 INNER JOIN sys.columns col 45 ON ic.object_id = col.object_id 46 AND ic.column_id = col.column_id 47 WHERE ic.object_id = t.object_id 48 AND ic.index_id = i.index_id 49 ORDER BY col.column_id 50 FOR XML PATH('') 51 ) D(column_names) 52 WHERE t.is_ms_shipped <> 1 53 AND index_id > 0 54 ORDER BY i.[name] 55 ) XXX;