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;