原文:
【SQL】統計所有表的行數
環境: mssql ent 2k8 r2
原理: 遍歷所有用戶表,用sp_spaceused過程分別獲取每張表的行數并寫入臨時表,最后返回臨時表
IF
OBJECT_ID
(
'
tempdb..#TableRowCount
'
,
'
U
'
)
IS
NOT
NULL
DROP
TABLE
#TableRowCount
GO
CREATE
TABLE
#TableRowCount (Name sysname
PRIMARY
KEY
, RowCnt
DECIMAL
(
11
,
0
), Reserved
VARCHAR
(
18
), Data
VARCHAR
(
18
), Index_Size
VARCHAR
(
18
), Unused
VARCHAR
(
18
))
GO
DECLARE
curCntAllTableRows
CURSOR
LOCAL FAST_FORWARD
FOR
SELECT
name
FROM
sys.tables
OPEN
curCntAllTableRows
DECLARE
@TableName
sysname
FETCH
NEXT
FROM
curCntAllTableRows
INTO
@TableName
WHILE
@@FETCH_STATUS
=
0
BEGIN
INSERT
INTO
#TableRowCount
EXEC
sys.sp_spaceused
@TableName
FETCH
NEXT
FROM
curCntAllTableRows
INTO
@TableName
END
CLOSE
curCntAllTableRows
DEALLOCATE
curCntAllTableRows
SELECT
Name,RowCnt
FROM
#TableRowCount
WHERE
RowCnt
>
0
ORDER
BY
RowCnt
DESC
,Name
文畢。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
