使用sp_MSForEachTable这个系统存储过程。
创建一张临时表,它有2个字段,[Table_Name]和[Total_Records]。
然后使用sp_MSForEachTable来处理,把结果插入上面创建的临时表中。如果Total_Records为0的,说明此表没有任何记录。
DROP TABLE #Temp_T
GO
CREATE TABLE #Temp_T
(
[Table_Name] NVARCHAR(128),
[Total_Records] INT
)
GO
EXEC sp_MSForEachTable @command1 = "INSERT INTO #Temp_T([Table_Name], [Total_Records]) SELECT ""?"", COUNT(*) FROM ?" ;
GO
SELECT [Table_Name],[Total_Records] FROM #Temp_T ORDER BY [Total_Records] DESC
Source Code