Script that provides the row counts and table names

后端 未结 7 1956
旧巷少年郎
旧巷少年郎 2021-02-05 10:24

Maybe you easily said how to I provide table names and row counts?

Pseudo SQL:

for \"select tablename from system.Tables\" into :tablename
  execute \"se         


        
7条回答
  •  庸人自扰
    2021-02-05 10:46

    Try this

    -- drop table #tmpspace
    create table #tmpspace (
            name sysname
            , rows int
            , reserved varchar(50)
            , data varchar(50)
            , index_size varchar(50)
            , unused varchar(50)
            )
    
    dbcc updateusage(0) with NO_INFOMSGS
    
    exec sp_msforeachtable 'insert #tmpspace exec sp_spaceused ''?'''
    
    select * from #tmpspace
    order by convert(int, substring(reserved, 1, charindex(' ', reserved))) desc, rows desc, name
    

    Works on sql2000 too.

    dbcc updateusage might take some time but results will be 100% actual. Skip it if you need speed over accuracy.

提交回复
热议问题