@@ -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