Skip to content

Commit d113dfd

Browse files
committed
Update sp_BlitzIndex.sql
This is for bug #2880 for sp_BlitzIndex. Modified the char-based INCLUDED column definition to match how char-based key columns are displayed (i.e. {nvarchar 80} versus {nvarchar (40)}). Added max size for non-char-based columns (i.e. {bigint 8}) for key, include, and secret columns.
1 parent f7181cc commit d113dfd

1 file changed

Lines changed: 19 additions & 11 deletions

File tree

sp_BlitzIndex.sql

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2118,12 +2118,12 @@ UPDATE #IndexSanity
21182118
SET key_column_names = D1.key_column_names
21192119
FROM #IndexSanity si
21202120
CROSS APPLY ( SELECT RTRIM(STUFF( (SELECT N', ' + c.column_name
2121-
+ N' {' + system_type_name + N' ' +
2122-
CASE max_length WHEN -1 THEN N'(max)' ELSE
2121+
+ N' {' + system_type_name +
2122+
CASE max_length WHEN -1 THEN N' (max)' ELSE
21232123
CASE
2124-
WHEN system_type_name IN (N'char',N'varchar',N'binary',N'varbinary') THEN N'(' + CAST(max_length AS NVARCHAR(20)) + N')'
2125-
WHEN system_type_name IN (N'nchar',N'nvarchar') THEN N'(' + CAST(max_length/2 AS NVARCHAR(20)) + N')'
2126-
ELSE ''
2124+
WHEN system_type_name IN (N'char',N'varchar',N'binary',N'varbinary') THEN N' (' + CAST(max_length AS NVARCHAR(20)) + N')'
2125+
WHEN system_type_name IN (N'nchar',N'nvarchar') THEN N' (' + CAST(max_length/2 AS NVARCHAR(20)) + N')'
2126+
ELSE N' ' + CAST(max_length AS NVARCHAR(50))
21272127
END
21282128
END
21292129
+ N'}'
@@ -2162,12 +2162,12 @@ FROM #IndexSanity si
21622162
WHEN 1 THEN N' DESC'
21632163
ELSE N''
21642164
END
2165-
+ N' {' + system_type_name + N' ' +
2166-
CASE max_length WHEN -1 THEN N'(max)' ELSE
2165+
+ N' {' + system_type_name +
2166+
CASE max_length WHEN -1 THEN N' (max)' ELSE
21672167
CASE
2168-
WHEN system_type_name IN (N'char',N'varchar',N'binary',N'varbinary') THEN N'(' + CAST(max_length AS NVARCHAR(20)) + N')'
2169-
WHEN system_type_name IN (N'nchar',N'nvarchar') THEN N'(' + CAST(max_length/2 AS NVARCHAR(20)) + N')'
2170-
ELSE ''
2168+
WHEN system_type_name IN (N'char',N'varchar',N'binary',N'varbinary') THEN N' (' + CAST(max_length AS NVARCHAR(20)) + N')'
2169+
WHEN system_type_name IN (N'nchar',N'nvarchar') THEN N' (' + CAST(max_length/2 AS NVARCHAR(20)) + N')'
2170+
ELSE N' ' + CAST(max_length AS NVARCHAR(50))
21712171
END
21722172
END
21732173
+ N'}'
@@ -2207,7 +2207,15 @@ UPDATE #IndexSanity
22072207
SET include_column_names = D3.include_column_names
22082208
FROM #IndexSanity si
22092209
CROSS APPLY ( SELECT RTRIM(STUFF( (SELECT N', ' + c.column_name
2210-
+ N' {' + system_type_name + N' ' + CAST(max_length AS NVARCHAR(50)) + N'}'
2210+
+ N' {' + system_type_name +
2211+
CASE max_length WHEN -1 THEN N' (max)' ELSE
2212+
CASE
2213+
WHEN system_type_name IN (N'char',N'varchar',N'binary',N'varbinary') THEN N' (' + CAST(max_length AS NVARCHAR(20)) + N')'
2214+
WHEN system_type_name IN (N'nchar',N'nvarchar') THEN N' (' + CAST(max_length/2 AS NVARCHAR(20)) + N')'
2215+
ELSE N' ' + CAST(max_length AS NVARCHAR(50))
2216+
END
2217+
END
2218+
+ N'}'
22112219
FROM #IndexColumns c
22122220
WHERE c.database_id= si.database_id
22132221
AND c.schema_name = si.schema_name

0 commit comments

Comments
 (0)