As a follow up to yesterday’s post, here’s how to get a list of table statistics using DMVs:
- SELECT Table_Name = SCHEMA_NAME(st.Schema_id) + '.'
- + OBJECT_NAME(st.object_id)
- , stats_name = ss.name
- , [stats_columns] = LEFT(SColumns, LEN(Scolumns) - 1)
- , ss.user_created
- , ss.auto_created
- , ss.filter_definition
- FROM sys.stats ss
- join sys.tables st
- on ss.object_id = st.object_id
- CROSS APPLY
- (SELECT cc.name + ', '
- FROM sys.stats_columns sc
- JOIN sys.columns cc
- on sc.object_id = cc.object_id
- and sc.column_id = cc.column_id
- WHERE ss.object_id = sc.object_id
- and ss.stats_id = sc.stats_id
- ORDER BY SC.stats_column_id
- FOR XML PATH ('') ) cl (SColumns);
As with the last query, substitute sys.objects for sys.tables if you need to capture information about views.