You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:SQL Server环境下统计所有表行数的SQL语句

SQL Server统计所有表总行数的适配方案

你遇到的错误是因为Oracle用||做字符串拼接,而SQL Server里字符串拼接用+,而且系统表也不一样——Oracle的user_tables对应SQL Server的sys.tables,还要注意SQL Server里表需要带上架构名(比如默认的dbo),避免同名表冲突。

这里给你两种适配方案:

方案1:生成每个表的COUNT语句

运行下面的SQL会输出每一张表的统计语句,你可以复制这些语句执行,或者批量运行:

SELECT 'SELECT ''' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) + ''' AS TableName, COUNT(*) AS RowCount FROM ' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) + ';' AS CountQueries
FROM sys.tables t
JOIN sys.schemas s ON t.schema_id = s.schema_id;

用QUOTENAME是为了兼容带特殊字符(比如空格、关键字)的表名/架构名,避免语法错误。

方案2:一次性生成所有表的统计结果

如果想直接得到所有表的行数汇总,用动态SQL一次性执行:

DECLARE @SQL NVARCHAR(MAX) = '';

SELECT @SQL += 'UNION ALL SELECT ''' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) + ''' AS TableName, COUNT(*) AS RowCount FROM ' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) + ' '
FROM sys.tables t
JOIN sys.schemas s ON t.schema_id = s.schema_id;

-- 移除开头多余的UNION ALL
SET @SQL = STUFF(@SQL, 1, 10, '');

EXEC sp_executesql @SQL;

内容的提问来源于stack exchange,提问作者summerisbetterthanwinter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:29:57