Skip to content

Commit 402e1e4

Browse files
Merge pull request #529 from HannahVernon/pr-review-2025-03-18
added QUOTENAME to the output of the 'original_index_definition' colu…
2 parents 8ffb8b3 + 64e8c37 commit 402e1e4

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

sp_IndexCleanup/sp_IndexCleanup.sql

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ ALTER PROCEDURE
2626
@get_all_databases bit = 0, /*looks for all accessible user databases and returns combined results*/
2727
@include_databases nvarchar(max) = NULL, /*comma-separated list of databases to include (only when @get_all_databases = 1)*/
2828
@exclude_databases nvarchar(max) = NULL, /*comma-separated list of databases to exclude (only when @get_all_databases = 1)*/
29+
@verbose_output tinyint = 0, /* 0 -> no verbose output, 1 -> add NONUNIQUE, NONCLUSTERED type output in the original_index_defintion output */
2930
@help bit = 'false',
3031
@debug bit = 'false',
3132
@version varchar(20) = NULL OUTPUT,
@@ -453,6 +454,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
453454
index_id integer NOT NULL,
454455
index_name sysname NULL,
455456
column_name sysname NOT NULL,
457+
column_id int NOT NULL,
456458
is_primary_key bit NULL,
457459
is_unique bit NULL,
458460
is_unique_constraint bit NULL,
@@ -1446,6 +1448,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
14461448
table_name = t.name,
14471449
index_name = ISNULL(i.name, t.name + N''.Heap''),
14481450
column_name = c.name,
1451+
column_id = c.column_id,
14491452
i.is_primary_key,
14501453
i.is_unique,
14511454
i.is_unique_constraint,
@@ -1620,6 +1623,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16201623
table_name,
16211624
index_name,
16221625
column_name,
1626+
column_id,
16231627
is_primary_key,
16241628
is_unique,
16251629
is_unique_constraint,
@@ -1903,7 +1907,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19031907
(
19041908
SELECT
19051909
N', ' +
1906-
id2.column_name +
1910+
QUOTENAME(id2.column_name) +
19071911
CASE
19081912
WHEN id2.is_descending_key = 1
19091913
THEN N' DESC'
@@ -1934,7 +1938,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19341938
(
19351939
SELECT
19361940
N', ' +
1937-
id2.column_name
1941+
QUOTENAME(id2.column_name)
19381942
FROM #index_details id2
19391943
WHERE id2.object_id = id1.object_id
19401944
AND id2.index_id = id1.index_id
@@ -1972,6 +1976,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19721976
ELSE
19731977
N'CREATE ' +
19741978
CASE WHEN id1.is_unique = 1 THEN N'UNIQUE ' ELSE N'' END +
1979+
CASE WHEN id1.index_id = 0 THEN N'CLUSTERED ' WHEN id1.index_id > 0 AND @verbose_output >= 1 THEN N'NONCLUSTERED ' ELSE N'' END +
19751980
N'INDEX ' +
19761981
QUOTENAME(id1.index_name) +
19771982
N' ON ' +
@@ -1987,7 +1992,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19871992
(
19881993
SELECT
19891994
N', ' +
1990-
id2.column_name +
1995+
QUOTENAME(id2.column_name) +
19911996
CASE
19921997
WHEN id2.is_descending_key = 1
19931998
THEN N' DESC'
@@ -2029,14 +2034,16 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20292034
(
20302035
SELECT
20312036
N', ' +
2032-
id4.column_name
2037+
QUOTENAME(id4.column_name)
20332038
FROM #index_details id4
20342039
WHERE id4.object_id = id1.object_id
20352040
AND id4.index_id = id1.index_id
20362041
AND id4.is_included_column = 1
20372042
GROUP BY
2043+
id4.column_id,
20382044
id4.column_name
20392045
ORDER BY
2046+
id4.column_id,
20402047
id4.column_name
20412048
FOR
20422049
XML
@@ -2054,7 +2061,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20542061
WHEN id1.filter_definition IS NOT NULL
20552062
THEN N' WHERE ' + id1.filter_definition
20562063
ELSE N''
2057-
END
2064+
END +
2065+
N';'
20582066
FROM #index_details id1
20592067
WHERE id1.is_eligible_for_dedupe = 1
20602068
GROUP BY

0 commit comments

Comments
 (0)