SQL Server遍历所有表统计行数
时间:2021-07-01 10:21:17
帮助过:6人阅读
CountTableRecords
CURSOR READ_ONLY
FOR
SELECT sst.name,
Schema_name(sst.schema_id)
FROM sys.tables sst
WHERE sst.TYPE
= ‘U‘
DECLARE @name VARCHAR(
80),
@schema VARCHAR(
40)
OPEN CountTableRecords
FETCH NEXT FROM CountTableRecords
INTO @name,
@schema
WHILE (
@@FETCH_STATUS <> -1 )
BEGIN
IF (
@@FETCH_STATUS <> -2 )
BEGIN
PRINT @name
DECLARE @sql NVARCHAR(
1024)
SET @sql=‘DECLARE @count INT SELECT @count=COUNT(1) FROM ‘ + Quotename(
@schema)
+
‘.‘ + Quotename(
@name)
+‘ PRINT @count‘
EXEC Sp_executesql
@sql
END
FETCH NEXT FROM CountTableRecords
INTO @name,
@schema
END
CLOSE CountTableRecords
DEALLOCATE CountTableRecords
GO
主要是为了找出数据库里面记录最多的表,用来做性能测试用。
来自SQL Server 2005/2008遍历所有表统计行数,实测在SQL Server 2012 LocalDB上可用。
SQL Server遍历所有表统计行数
标签:table print pen from serve alc _id tables sch