Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions sp_IndexCleanup/sp_IndexCleanup.sql
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ ALTER PROCEDURE
@get_all_databases bit = 0, /*looks for all accessible user databases and returns combined results*/
@include_databases nvarchar(max) = NULL, /*comma-separated list of databases to include (only when @get_all_databases = 1)*/
@exclude_databases nvarchar(max) = NULL, /*comma-separated list of databases to exclude (only when @get_all_databases = 1)*/
@verbose_output tinyint = 0, /* 0 -> no verbose output, 1 -> add NONUNIQUE, NONCLUSTERED type output in the original_index_defintion output */
@help bit = 'false',
@debug bit = 'false',
@version varchar(20) = NULL OUTPUT,
Expand Down Expand Up @@ -453,6 +454,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
index_id integer NOT NULL,
index_name sysname NULL,
column_name sysname NOT NULL,
column_id int NOT NULL,
is_primary_key bit NULL,
is_unique bit NULL,
is_unique_constraint bit NULL,
Expand Down Expand Up @@ -1446,6 +1448,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
table_name = t.name,
index_name = ISNULL(i.name, t.name + N''.Heap''),
column_name = c.name,
column_id = c.column_id,
i.is_primary_key,
i.is_unique,
i.is_unique_constraint,
Expand Down Expand Up @@ -1620,6 +1623,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
table_name,
index_name,
column_name,
column_id,
is_primary_key,
is_unique,
is_unique_constraint,
Expand Down Expand Up @@ -1903,7 +1907,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
(
SELECT
N', ' +
id2.column_name +
QUOTENAME(id2.column_name) +
CASE
WHEN id2.is_descending_key = 1
THEN N' DESC'
Expand Down Expand Up @@ -1934,7 +1938,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
(
SELECT
N', ' +
id2.column_name
QUOTENAME(id2.column_name)
FROM #index_details id2
WHERE id2.object_id = id1.object_id
AND id2.index_id = id1.index_id
Expand Down Expand Up @@ -1972,6 +1976,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
ELSE
N'CREATE ' +
CASE WHEN id1.is_unique = 1 THEN N'UNIQUE ' ELSE N'' END +
CASE WHEN id1.index_id = 0 THEN N'CLUSTERED ' WHEN id1.index_id > 0 AND @verbose_output >= 1 THEN N'NONCLUSTERED ' ELSE N'' END +
N'INDEX ' +
QUOTENAME(id1.index_name) +
N' ON ' +
Expand All @@ -1987,7 +1992,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
(
SELECT
N', ' +
id2.column_name +
QUOTENAME(id2.column_name) +
CASE
WHEN id2.is_descending_key = 1
THEN N' DESC'
Expand Down Expand Up @@ -2029,14 +2034,16 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
(
SELECT
N', ' +
id4.column_name
QUOTENAME(id4.column_name)
FROM #index_details id4
WHERE id4.object_id = id1.object_id
AND id4.index_id = id1.index_id
AND id4.is_included_column = 1
GROUP BY
id4.column_id,
id4.column_name
ORDER BY
id4.column_id,
id4.column_name
Comment thread
erikdarlingdata marked this conversation as resolved.
FOR
XML
Expand All @@ -2054,7 +2061,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
WHEN id1.filter_definition IS NOT NULL
THEN N' WHERE ' + id1.filter_definition
ELSE N''
END
END +
N';'
FROM #index_details id1
WHERE id1.is_eligible_for_dedupe = 1
GROUP BY
Expand Down