2011-02-14 39 views
2

在SQL Server 2008中,我希望行计数不为NULL的所有表格 有人可以帮忙吗?数据库中行不为空的所有表格

+0

行计数不可能是NULL。你的意思是你想要所有具有> 0行的表吗? – 2011-02-14 08:51:16

+0

是的..我想所有的表都有至少一行条目 – Pradeep 2011-02-14 08:52:30

回答

2

一个快速和肮脏的方式(包括未提交的事务的效果)

SELECT OBJECT_NAME(p.object_id), SUM(rows) 
FROM sys.partitions p 
WHERE index_id < 2 and OBJECTPROPERTYEX (object_id ,'IsUserTable') = 1 
GROUP BY p.object_id 
HAVING SUM(rows) > 0 
2

非常快速和肮脏的方式:

在SSMS,在数据库上单击右键,选择报告 - >标准报告 - >磁盘Usuage由Top表

2

另一种方法是使用无证程序sp_MSForEachTable

Create Table ##TempRowCount 
(
TableName nvarchar(max), 
NumberOfRows int 
) 
Exec sp_msforeachTable 'Insert Into ##TempRowCount select ''?'', count(*) From ?' 

Select * From ##TempRowcount 
Where NumberOfRows > 0 

Drop Table ##TempRowCount 

这可能需要一些时间才能运行,具体取决于数据库和表的大小。

相关问题