最近公司的數據庫發現有表的數據被弄掉了,有些數據表記錄為0,於是想找出此數據庫中到底有哪些數據表的記錄都為0以縮小分析范圍,可使用如下的SQL Statement:
CREATE
TABLE #tmptb(tbname sysname,tbrows
int
,tbREserved varchar( 10),tbData varchar( 10)
,tbIndexSize varchar( 10),tbUnUsed varchar( 10))
INSERT INTO #tmptb exec sp_MSForEachTable ' EXEC sp_spaceused '' ? '''
SELECT * from #tmptb -- 列出所有表的情況
SELECT tbrows ,tbname FROM #tmptb WHERE tbrows = 0 -- 列出記錄數據為0的表
ORDER BY tbname
DROP TABLE #tmptb
,tbREserved varchar( 10),tbData varchar( 10)
,tbIndexSize varchar( 10),tbUnUsed varchar( 10))
INSERT INTO #tmptb exec sp_MSForEachTable ' EXEC sp_spaceused '' ? '''
SELECT * from #tmptb -- 列出所有表的情況
SELECT tbrows ,tbname FROM #tmptb WHERE tbrows = 0 -- 列出記錄數據為0的表
ORDER BY tbname
DROP TABLE #tmptb
其中
tbname 表名
tbrows 記錄數
tbREserved 保留空間
tbData 使用空間
tbIndexSize 索引使用空間
tbUnUsed 未用空間
