SQL Server查询所有表及记录行数
在SQL Server中,我们可以使用系统表来查询所有表及其记录行数。本文将介绍两种方法来查询所有表及其记录行数,并提供两个示例说明。
方法一:使用系统表
我们可以使用系统表sys.tables
和sys.partitions
来查询所有表及其记录行数。以下是一个示例:
SELECT
t.name AS TableName,
SUM(p.rows) AS RowCounts
FROM
sys.tables t
INNER JOIN
sys.partitions p ON t.object_id = p.object_id
WHERE
t.is_ms_shipped = 0
AND p.index_id IN (0,1)
GROUP BY
t.name
ORDER BY
RowCounts DESC;
输出结果为:
TableName RowCounts
----------- -----------
table1 1000
table2 500
table3 250
方法二:使用动态SQL
我们可以使用动态SQL来查询所有表及其记录行数。以下是一个示例:
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql += N'SELECT ''' + name + ''' AS TableName, COUNT(*) AS RowCounts FROM ' + QUOTENAME(name) + ';'
FROM sys.tables
WHERE type_desc = 'USER_TABLE';
EXEC sp_executesql @sql;
输出结果为:
TableName RowCounts
----------- -----------
table1 1000
table2 500
table3 250
结论
在SQL Server中,我们可以使用系统表或动态SQL来查询所有表及其记录行数。使用系统表的方法比较简单,但是需要使用多个表进行联接。使用动态SQL的方法比较灵活,但是需要使用动态SQL语句。无论使用哪种方法,都可以帮助我们快速查询所有表及其记录行数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:sqlserver 查询所有表及记录行数 - Python技术站