1.查看某个数据库中每个表的行数
SELECT@@servername as servername,db_name() as databasename, s.name AS schemaname,t.name AS tablename, p.rows AS rowcounts, SUM(a.total_pages) * 8 AS totalspaceKB, SUM(a.used_pages) * 8 AS usedspaceKB, (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS unusedspaceKB,getdate() as captureddatetimeFROM sys.tables tINNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_idINNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_idINNER JOIN sys.allocation_units a ON p.partition_id = a.container_idLEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_idWHERE t.NAME NOT LIKE 'dt%' AND t.is_ms_shipped = 0 AND i.OBJECT_ID > 255GROUP BYt.name, s.name, p.Rows
2.查看SQL Server中每个数据库中每个表的行数
SELECTname as databasenameINTO FROM sys.databases WHERE database_id > 4CREATE TABLE servername sysname,databasename sysname,schemaName sysname,tablename sysname,rowcounts INT,totalspaceKB DECIMAL(18,2),usedspaceKB DECIMAL(18,2),unusedspaceKB DECIMAL(18,2),captureddatetime datetime );DECLARE @command VARCHAR(MAX);SET @command = 'USE [?]IF DB_NAME() IN (SELECT databasename FROM #alldatabases)BEGININSERT #alltablesizesSELECT@@servername as servername,db_name() as databasename, s.name AS schemaname,t.name AS tablename, p.rows AS rowcounts, SUM(a.total_pages) * 8 AS totalspaceKB, SUM(a.used_pages) * 8 AS usedspaceKB, (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS unusedspaceKB,getdate() as captureddatetimeFROM sys.tables tINNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_idINNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_idINNER JOIN sys.allocation_units a ON p.partition_id = a.container_idLEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_idWHERE t.NAME NOT LIKE ''dt%'' AND t.is_ms_shipped = 0 AND i.OBJECT_ID > 255--and t.name =''XXXX'' ---- replace the XXXX with table nameGROUP BYt.name, s.name, p.RowsEND';EXEC sp_MSforeachdb @commandselect * from order by 5 descdrop table drop table
3.查看SQL Server中每个数据库中表的总行数
SELECTname as databasenameINTO FROM sys.databases WHERE database_id > 4CREATE TABLE servername sysname,databasename sysname,schemaName sysname,tablename sysname,rowcounts INT,totalspaceKB DECIMAL(18,2),usedspaceKB DECIMAL(18,2),unusedspaceKB DECIMAL(18,2),captureddatetime datetime);DECLARE @command VARCHAR(MAX);SET @command = 'USE [?]IF DB_NAME() IN (SELECT databasename FROM #alldatabases)BEGININSERT #alltablesizesSELECT@@servername as servername,db_name() as databasename,s.name AS schemaname,t.name AS tablename,p.rows AS rowcounts,SUM(a.total_pages) * 8 AS totalspaceKB,SUM(a.used_pages) * 8 AS usedspaceKB,(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS unusedspaceKB,getdate() as captureddatetimeFROM sys.tables tINNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_idINNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_idINNER JOIN sys.allocation_units a ON p.partition_id = a.container_idLEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_idWHERE t.NAME NOT LIKE ''dt%''AND t.is_ms_shipped = 0AND i.OBJECT_ID > 255--and t.name =''XXXX'' ---- replace the XXXX with table nameGROUP BYt.name, s.name, p.RowsEND';EXEC sp_MSforeachdb @commandselect servername,databasename,captureddatetime,sum(cast(rowcounts as bigint)) from group by servername,databasename,captureddatetimeorder by 1,2drop table drop table
该文章在 2026/6/9 10:51:01 编辑过