l--*_*''' 16 sql sql-server-2008
SMSS中是否有办法检测表是否有任何记录?我需要获取有记录的表列表.也许有一个sql语句可以做到这一点?
mar*_*c_s 25
试试这个 - 给你表名和行数:
SELECT
t.NAME AS TableName,
SUM(p.rows) AS [RowCount]
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
i.index_id <= 1
GROUP BY
t.NAME, i.object_id, i.index_id, i.name
ORDER BY
SUM(p.rows) DESC
Run Code Online (Sandbox Code Playgroud)
它在单个输出中显示所有表及其行数.
Mar*_*ith 16
由于您的问题专门提到SSMS,您也可以右键单击对象资源管理器中的数据库,然后从快捷菜单中执行
Reports -> Standard Reports -> Disc Usage By Table
Run Code Online (Sandbox Code Playgroud)
Noe*_*ams 13
一个更简单的语法:
SELECT [Name] = o.name
, [RowCount] = SUM(p.row_count)
FROM SYS.DM_DB_PARTITION_STATS p
INNER JOIN
SYS.TABLES o
ON p.[object_ID] = o.[object_id]
WHERE index_id <= 1 -- Heap or clustered index only
GROUP BY o.name
ORDER BY 2 desc
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20018 次 |
最近记录: |