最近公司的数据库发现有表的数据被弄掉了,有些数据表记录为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
其中
tbname 表名 tbrows 记录数 tbREserved 保留空间 tbData 使用空间 tbIndexSize 索引使用空间 tbUnUsed 未用空间