DECLARE @tableName NVARCHAR(255)
DECLARE @rowCount INT
declare @sql nvarchar(2000); -- SQL 语句
declare @parameter_def nvarchar(200); -- SQL 语句参数定义
declare @maxnamelen int;
select @maxnamelen= max(len(name)) + 1 FROM sys.tables
print @maxnamelen;
DECLARE tableCursor CURSOR FOR
SELECT name FROM sys.tables ORDER BY name
OPEN tableCursor
FETCH NEXT FROM tableCursor INTO @tableName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @rowCount = 0
-- EXEC ('SELECT @rowCount = COUNT(*) FROM ' + @tableName)
set @sql = 'SELECT @rowCount = COUNT(*) FROM ' + @tableName;
set @parameter_def = N'@rowCount int output'
begin try
exec sp_executesql @sql, @parameter_def, @rowCount = @rowCount output;
PRINT convert(char(21), @tableName) + ': ' + convert(varchar, @rowCount)
end try
begin catch
end catch
FETCH NEXT FROM tableCursor INTO @tableName
END
CLOSE tableCursor
DEALLOCATE tableCursor