SELECT
' CREATE '
+
CASE
WHEN
I.is_unique = 1
THEN
' UNIQUE '
ELSE
''
END
I.type_desc
COLLATE
DATABASE_DEFAULT +
' INDEX '
I.
name
' ON '
Schema_name(T.Schema_id)+
'.'
+T.
' ( '
KeyColumns +
' ) '
ISNULL
(
' INCLUDE ('
+IncludedColumns+
,
) +
' WHERE '
+I.Filter_definition,
' WITH ( '
I.is_padded = 1
' PAD_INDEX = ON '
' PAD_INDEX = OFF '
','
'FILLFACTOR = '
CONVERT
CHAR
(5),
I.Fill_factor = 0
100
I.Fill_factor
-- default value
'SORT_IN_TEMPDB = OFF '
I.ignore_dup_key = 1
' IGNORE_DUP_KEY = ON '
' IGNORE_DUP_KEY = OFF '
ST.no_recompute = 0
' STATISTICS_NORECOMPUTE = OFF '
' STATISTICS_NORECOMPUTE = ON '
' DROP_EXISTING = ON '
' ONLINE = OFF '
I.allow_row_locks = 1
' ALLOW_ROW_LOCKS = ON '
' ALLOW_ROW_LOCKS = OFF '
I.allow_page_locks = 1
' ALLOW_PAGE_LOCKS = ON '
' ALLOW_PAGE_LOCKS = OFF '
' ) ON ['
DS.
' ] '
[CreateIndexScript]
FROM
sys.indexes I
JOIN
sys.tables T
ON
T.Object_id = I.Object_id
sys.sysindexes SI
I.Object_id = SI.id
AND
I.index_id = SI.indid
*
IC2.object_id , IC2.index_id ,
STUFF((
' , '
+ C.
MAX
INT
,IC1.is_descending_key)) = 1
' DESC '
' ASC '
sys.index_columns IC1
Sys.columns C
C.object_id = IC1.object_id
C.column_id = IC1.column_id
IC1.is_included_column = 0
WHERE
IC1.object_id = IC2.object_id
IC1.index_id = IC2.index_id
GROUP
BY
IC1.object_id,C.
,index_id
ORDER
(IC1.key_ordinal)
FOR
XML PATH(
)), 1, 2,
) KeyColumns
sys.index_columns IC2
--WHERE IC2.Object_id = object_id('Person.Address') --Comment for all tables
IC2.object_id ,IC2.index_id) tmp3 )tmp4
I.object_id = tmp4.object_id
I.Index_id = tmp4.index_id
sys.stats ST
ST.object_id = I.object_id
ST.stats_id = I.index_id
sys.data_spaces DS
I.data_space_id=DS.data_space_id
sys.filegroups FG
I.data_space_id=FG.data_space_id
LEFT
IC1.is_included_column = 1
) IncludedColumns
IC2.object_id ,IC2.index_id) tmp1
IncludedColumns
IS
NOT
NULL
) tmp2
tmp2.object_id = I.object_id
tmp2.index_id = I.index_id
I.is_primary_key = 0
I.is_unique_constraint = 0
--AND I.Object_id = object_id('Person.Address') --Comment for all tables
--AND I.name = 'IX_Address_PostalCode' --comment for all indexes
TNJMAN edited Revision 11. Comment: added link/citation for wiki definition of Transact-SQL
TNJMAN edited Revision 9. Comment: more clarity
TNJMAN edited Revision 8. Comment: fix my spelling error
TNJMAN edited Revision 7. Comment: Clarify some more
TNJMAN edited Revision 6. Comment: Cleanup - more "wiki-like"
TNJMAN edited Revision 4. Comment: Clean up idomatic inconsistencies
SathyanarrayananS edited Revision 3. Comment: added See also section
Maheshkumar S Tiwari edited Original. Comment: Added tags
Please include your T-SQL articles into this parent article social.technet.microsoft.com/.../17785.sql-server-query-language-transact-sql.aspx and make a reference to it in yours in See Also section
TNJMAN edited Revision 5. Comment: More cleanup
Interesting - this is not really a "wiki;" it is a "script submission," but we can turn it into a wiki...