博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQLServer遍历数据库所有表及统计表数据总数

Posted on 2010-09-07 17:26  moss_tan_jun  阅读(2113)  评论(0编辑  收藏  举报

 

 1 DECLARE @TableName varchar(255);
 2 CREATE TABLE #GetRecordingTempTable([id] [INT] IDENTITY(1,1NOT NULL[TableName] varchar(255NOT NULL[RecordingCount] INT);
 3 DECLARE Table_Cursor CURSOR FOR SELECT [name] FROM sysobjects WHERE xtype='U';
 4 OPEN Table_Cursor;
 5 FETCH NEXT FROM Table_Cursor INTO @TableName;
 6 WHILE(@@FETCH_STATUS=0)
 7 BEGIN
 8 EXEC('INSERT INTO #GetRecordingTempTable ([TableName],[RecordingCount]) SELECT '''+@TableName+''', COUNT(0) FROM ['+@TableName+'];');
 9 FETCH NEXT FROM   Table_Cursor INTO @TableName;
10 END
11 CLOSE Table_Cursor;
12 DEALLOCATE Table_Cursor;
13 SELECT [TableName] AS [表名称],[RecordingCount] AS [总记录数] FROM #GetRecordingTempTable ORDER BY [RecordingCount] DESC;
14 DROP TABLE #GetRecordingTempTable;
15 GO