------------------------ -- vTableIndexesConcise ------------------------ SELECT '['+Sch.name+'].['+ Tab.[name]+']' AS TableName ,sch.[Name] as SchemaName ,tab.[Name] as tblName ,Ind.[name] AS IndexName ,SUBSTRING(( SELECT ', ' + AC.name FROM sys.[tables] AS T INNER JOIN sys.[indexes] I ON T.[object_id] = I.[object_id] INNER JOIN sys.[index_columns] IC ON I.[object_id] = IC.[object_id] AND I.[index_id] = IC.[index_id] INNER JOIN sys.[all_columns] AC ON T.[object_id] = AC.[object_id] AND IC.[column_id] = AC.[column_id] WHERE Ind.[object_id] = I.[object_id] AND Ind.index_id = I.index_id AND IC.is_included_column = 0 ORDER BY IC.key_ordinal FOR XML PATH('')), 2, 8000) AS KeyCols ,SUBSTRING(( SELECT ', ' + AC.name FROM sys.[tables] AS T INNER JOIN sys.[indexes] I ON T.[object_id] = I.[object_id] INNER JOIN sys.[index_columns] IC ON I.[object_id] = IC.[object_id] AND I.[index_id] = IC.[index_id] INNER JOIN sys.[all_columns] AC ON T.[object_id] = AC.[object_id] AND IC.[column_id] = AC.[column_id] WHERE Ind.[object_id] = I.[object_id] AND Ind.index_id = I.index_id AND IC.is_included_column = 1 ORDER BY IC.key_ordinal FOR XML PATH('')), 2, 8000) AS IncludeCols FROM sys.[indexes] Ind INNER JOIN sys.[tables] AS Tab ON Tab.[object_id] = Ind.[object_id] INNER JOIN sys.[schemas] AS Sch ON Sch.[schema_id] = Tab.[schema_id] ------------------------ -- vTableIndexesVerbose ------------------------ SELECT TableName = t.name ,Schema_Name(t.Schema_ID) as SchemaName ,IndexName = ind.name ,IndexId = ind.index_id ,ColumnId = ic.index_column_id ,ColumnName = col.name ,ind.[type] ,ind.[type_desc] ,ind.[is_unique] ,ind.[data_space_id] ,ind.[ignore_dup_key] ,ind.[is_primary_key] ,ind.[is_unique_constraint] ,ind.[fill_factor] ,ind.[is_padded] ,ind.[is_disabled] ,ind.[is_hypothetical] ,ind.[allow_row_locks] ,ind.[allow_page_locks] ,ic.[index_id] ,ic.[index_column_id] ,ic.[key_ordinal] ,ic.[partition_ordinal] ,ic.[is_descending_key] ,ic.[is_included_column] ,col.* FROM sys.indexes ind INNER JOIN sys.index_columns ic ON ind.object_id = ic.object_id and ind.index_id = ic.index_id INNER JOIN sys.columns col ON ic.object_id = col.object_id and ic.column_id = col.column_id INNER JOIN sys.tables t ON ind.object_id = t.object_id ------------------- -- vTableRowCounts ------------------- SELECT QUOTENAME(SCHEMA_NAME(sOBJ.schema_id)) + '.' + QUOTENAME(sOBJ.name) AS [SchemaTableName] ,Schema_Name(sOBJ.Schema_ID) as TableSchema ,sOBJ.Name as [TableName] , SUM(sPTN.Rows) AS [RowCount] FROM sys.objects AS sOBJ INNER JOIN sys.partitions AS sPTN ON sOBJ.object_id = sPTN.object_id WHERE sOBJ.type = 'U' AND sOBJ.is_ms_shipped = 0x0 AND index_id < 2 -- 0:Heap, 1:Clustered GROUP BY sOBJ.schema_id, sOBJ.name