选择插入了至少一行数据的所有表

时间:2014-08-28 18:37:45

标签: sql sql-server

我想要返回所有至少有一行数据的表。

我正在使用它:

SELECT DISTINCT(OBJECT_NAME(OBJECT_ID)) 
FROM SYS.DM_DB_PARTITION_STATS ST
WHERE ST.ROW_COUNT > 0 AND OBJECT_ID > 100

但我不想使用表SYS.DM_DB_PARTITION_STATS

我想知道找到这些表的另一种方法吗?

任何线索?

感谢。

2 个答案:

答案 0 :(得分:4)

您可以使用以下内容:

SELECT 
    t.NAME AS TableName,
    p.rows AS RowCounts
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
WHERE 
    t.is_ms_shipped = 0
    AND p.rows > 0
GROUP BY 
    t.Name, p.Rows
ORDER BY 
    t.Name

这将列出所有具有名称和行数(> 0)的表格。

使用sys.dm_db_partition_stats ....

答案 1 :(得分:0)

您不应该使用sys.dm_db_partition_stats