从数据库中行不为空的所有表

时间:2011-02-14 08:48:57

标签: sql sql-server-2008

在SQL server 2008中,我想要所有行数不为NULL的表 有人可以帮忙吗?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

非常快速和肮脏的方式:

在SSMS中,右键单击数据库,选择Reports-&gt;标准报告 - &gt;顶级表的磁盘使用情况

答案 2 :(得分: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

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