SQL SERVER 遍历库中的表及其记录数


use 库名

DECLARE @TableName varchar(255);

CREATE TABLE #GetRecordingTempTable([id] [INT] IDENTITY(1,1) NOT NULL, [TableName] varchar(255) NOT NULL, [RecordingCount] INT);

DECLARE Table_Cursor CURSOR FOR SELECT [name] FROM sysobjects WHERE xtype='U';

 OPEN Table_Cursor;

FETCH NEXT FROM Table_Cursor INTO @TableName;

  WHILE(@@FETCH_STATUS=0)

  BEGIN

  EXEC('INSERT INTO #GetRecordingTempTable ([TableName],[RecordingCount]) SELECT '''+@TableName+''', COUNT(0) FROM ['+@TableName+'];');

  FETCH NEXT FROM   Table_Cursor INTO @TableName;

 END

 CLOSE Table_Cursor;

 DEALLOCATE Table_Cursor;

 SELECT [TableName] AS [表名称],[RecordingCount] AS [总记录数] FROM #GetRecordingTempTable ORDER BY [RecordingCount] DESC;

DROP TABLE #GetRecordingTempTable;

GO


你可能感兴趣的:(SQL Server)