我想要返回所有至少有一行数据的表。
我正在使用它:
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
。
我想知道找到这些表的另一种方法吗?
任何线索?
感谢。
答案 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