|
1 | 1 | IF OBJECT_ID(N'tempdb..#index_source') IS NOT NULL |
2 | | -DROP TABLE #index_source; |
| 2 | + DROP TABLE #index_source; |
3 | 3 | SELECT |
4 | | -ixcol.[object_id] |
| 4 | + ixcol.[object_id] |
5 | 5 | ,ixcol.index_id |
6 | 6 | ,ix.[type_desc] AS index_type |
7 | 7 | ,CASE |
8 | | -WHEN ix.[type_desc] = N'CLUSTERED' THEN N'CIX_' |
9 | | -WHEN ix.[type_desc] = N'NONCLUSTERED' THEN N'IX_' |
10 | | -WHEN ix.[type_desc] = N'CLUSTERED_COLUMNSTORE' THEN N'CCIX_' |
11 | | -WHEN ix.[type_desc] = N'NONCLUSTERED_COLUMNSTORE' THEN N'NCIX_' |
12 | | -END AS index_prefix |
| 8 | + WHEN ix.[type_desc] = N'CLUSTERED' THEN N'CIX_' |
| 9 | + WHEN ix.[type_desc] = N'NONCLUSTERED' THEN N'IX_' |
| 10 | + WHEN ix.[type_desc] = N'CLUSTERED_COLUMNSTORE' THEN N'CCIX_' |
| 11 | + WHEN ix.[type_desc] = N'NONCLUSTERED_COLUMNSTORE' THEN N'NCIX_' |
| 12 | + END AS index_prefix |
13 | 13 | ,ixcol.key_ordinal |
14 | 14 | ,col.[name] AS column_name |
15 | 15 | INTO #index_source |
16 | 16 | FROM |
17 | | -sys.objects AS obj |
18 | | -INNER JOIN sys.indexes AS ix |
19 | | -ON obj.[object_id] = ix.[object_id] |
20 | | -INNER JOIN sys.index_columns AS ixcol |
21 | | -ON ix.[object_id] = ixcol.[object_id] |
22 | | -AND ix.index_id = ixcol.index_id |
23 | | -INNER JOIN sys.columns AS col |
24 | | -ON ixcol.[object_id] = col.[object_id] |
25 | | -AND ixcol.column_id = col.column_id |
| 17 | + sys.objects AS obj |
| 18 | + INNER JOIN sys.indexes AS ix |
| 19 | + ON obj.[object_id] = ix.[object_id] |
| 20 | + INNER JOIN sys.index_columns AS ixcol |
| 21 | + ON ix.[object_id] = ixcol.[object_id] |
| 22 | + AND ix.index_id = ixcol.index_id |
| 23 | + INNER JOIN sys.columns AS col |
| 24 | + ON ixcol.[object_id] = col.[object_id] |
| 25 | + AND ixcol.column_id = col.column_id |
26 | 26 | WHERE |
27 | | -obj.[type] = N'U' |
28 | | -AND ix.[type] IN (1, 2, 5, 6) |
29 | | -AND ix.is_primary_key = 0 |
30 | | -AND ix.is_unique_constraint = 0 |
31 | | -AND ix.is_disabled = 0 |
32 | | -AND ixcol.is_included_column = 0 |
| 27 | + obj.[type] = N'U' |
| 28 | + AND ix.[type] IN (1, 2, 5, 6) |
| 29 | + AND ix.is_primary_key = 0 |
| 30 | + AND ix.is_unique_constraint = 0 |
| 31 | + AND ix.is_disabled = 0 |
| 32 | + AND ixcol.is_included_column = 0 |
33 | 33 | ORDER BY [object_id], index_id, key_ordinal; |
34 | 34 |
|
35 | 35 | IF OBJECT_ID(N'tempdb..#index_columns') IS NOT NULL |
36 | | -DROP TABLE #index_columns; |
| 36 | + DROP TABLE #index_columns; |
37 | 37 | SELECT |
38 | | -qry.[object_id] |
39 | | -,qry.index_id |
40 | | -,STUFF(CAST(( |
41 | | -SELECT |
42 | | -[text()] = '_' + column_name |
43 | | -FROM #index_source AS ixsrc |
44 | | -WHERE |
45 | | -ixsrc.[object_id] = qry.[object_id] |
46 | | -AND ixsrc.index_id = qry.index_id |
47 | | -FOR XML PATH (''), TYPE) |
48 | | -AS NVARCHAR(MAX)) |
49 | | -, 1, 1, '') AS [columns] |
| 38 | + qry.[object_id] |
| 39 | + ,qry.index_id |
| 40 | + ,STUFF(CAST(( |
| 41 | + SELECT |
| 42 | + [text()] = '_' + column_name |
| 43 | + FROM |
| 44 | + #index_source AS ixsrc |
| 45 | + WHERE |
| 46 | + ixsrc.[object_id] = qry.[object_id] |
| 47 | + AND ixsrc.index_id = qry.index_id |
| 48 | + FOR XML PATH (''), TYPE |
| 49 | + ) |
| 50 | + AS NVARCHAR(MAX)) |
| 51 | + , 1, 1, N'') AS [columns] |
50 | 52 | INTO #index_columns |
51 | | -FROM ( |
52 | | -SELECT DISTINCT |
53 | | -[object_id] |
54 | | -,index_id |
55 | | -FROM #index_source |
56 | | -) AS qry; |
| 53 | +FROM |
| 54 | + ( |
| 55 | + SELECT DISTINCT |
| 56 | + [object_id] |
| 57 | + ,index_id |
| 58 | + FROM |
| 59 | + #index_source |
| 60 | + ) AS qry; |
57 | 61 |
|
58 | 62 | IF OBJECT_ID(N'tempdb..#index_name') IS NOT NULL |
59 | | -DROP TABLE #index_name; |
| 63 | + DROP TABLE #index_name; |
60 | 64 | SELECT |
61 | | -ixsrc.[object_id] |
| 65 | + ixsrc.[object_id] |
62 | 66 | ,ixsrc.index_id |
63 | 67 | ,MAX(index_type) AS index_type |
64 | 68 | ,MAX(index_prefix) AS index_prefix |
65 | 69 | ,CASE |
66 | | -WHEN MAX(index_type) = N'CLUSTERED' THEN MAX(ixcol.[columns]) |
67 | | -WHEN MAX(index_type) = N'NONCLUSTERED' THEN MAX(ixcol.[columns]) |
68 | | -WHEN MAX(index_type) = N'CLUSTERED_COLUMNSTORE' THEN OBJECT_NAME(ixsrc.[object_id]) |
69 | | -WHEN MAX(index_type) = N'NONCLUSTERED_COLUMNSTORE' THEN OBJECT_NAME(ixsrc.[object_id]) + N'_' + CAST(ixsrc.index_id AS nvarchar(20)) |
70 | | -END AS index_name |
| 70 | + WHEN MAX(index_type) = N'CLUSTERED' THEN MAX(ixcol.[columns]) |
| 71 | + WHEN MAX(index_type) = N'NONCLUSTERED' THEN MAX(ixcol.[columns]) |
| 72 | + WHEN MAX(index_type) = N'CLUSTERED_COLUMNSTORE' THEN OBJECT_NAME(ixsrc.[object_id]) |
| 73 | + WHEN MAX(index_type) = N'NONCLUSTERED_COLUMNSTORE' THEN OBJECT_NAME(ixsrc.[object_id]) + N'_' + CAST(ixsrc.index_id AS NVARCHAR(20)) |
| 74 | + END AS index_name |
71 | 75 | INTO #index_name |
72 | 76 | FROM |
73 | | -#index_source AS ixsrc |
74 | | -INNER JOIN #index_columns AS ixcol |
75 | | -ON ixsrc.[object_id] = ixcol.[object_id] |
76 | | -AND ixsrc.index_id = ixcol.index_id |
| 77 | + #index_source AS ixsrc |
| 78 | + INNER JOIN #index_columns AS ixcol |
| 79 | + ON ixsrc.[object_id] = ixcol.[object_id] |
| 80 | + AND ixsrc.index_id = ixcol.index_id |
77 | 81 | GROUP BY |
78 | | -ixsrc.[object_id] |
| 82 | + ixsrc.[object_id] |
79 | 83 | ,ixsrc.index_id; |
80 | 84 |
|
81 | 85 | SELECT |
82 | | -REPLACE(REPLACE( |
83 | | -N'EXECUTE sys.sp_rename |
| 86 | + REPLACE(REPLACE( |
| 87 | + N'EXECUTE sys.sp_rename |
84 | 88 | @objname = N''${OBJECT_NAME}'' |
85 | 89 | ,@newname = N''${NEW_NAME}'' |
86 | 90 | ,@objtype = N''INDEX'';' |
87 | | -, N'${OBJECT_NAME}', N'[' + OBJECT_SCHEMA_NAME(ix.[object_id]) + N'].[' + OBJECT_NAME(ix.[object_id]) + N'].[' + ix.[name] + N']') |
88 | | -, N'${NEW_NAME}', ixnm.index_prefix + ixnm.index_name) |
| 91 | + , N'${OBJECT_NAME}', N'[' + OBJECT_SCHEMA_NAME(ix.[object_id]) + N'].[' + OBJECT_NAME(ix.[object_id]) + N'].[' + ix.[name] + N']') |
| 92 | + , N'${NEW_NAME}', ixnm.index_prefix + ixnm.index_name) |
89 | 93 | FROM |
90 | | -sys.indexes AS ix |
91 | | -INNER JOIN #index_name AS ixnm |
92 | | -ON ix.[object_id] = ixnm.[object_id] |
93 | | -AND ix.index_id = ixnm.index_id |
| 94 | + sys.indexes AS ix |
| 95 | + INNER JOIN #index_name AS ixnm |
| 96 | + ON ix.[object_id] = ixnm.[object_id] |
| 97 | + AND ix.index_id = ixnm.index_id |
94 | 98 | WHERE |
95 | | -ix.[name] != ixnm.index_prefix + ixnm.index_name; |
| 99 | + ix.[name] != ixnm.index_prefix + ixnm.index_name; |
0 commit comments