1 上網(wǎng)搜集了很多資料,終于寫出可以執(zhí)行的一個(gè)存儲(chǔ)過程了,如下: 2 3 SET ANSI_NULLS ON 4 GO 5 SET QUOTED_IDENTIFIER ON 6 GO 7 8 -- 重點(diǎn)開始了 9 CREATE PROCEDURE [ dbo ] . [ hrmis_counts ] 10 11 AS 12 BEGIN 13 -- 聲明游標(biāo) 14 Declare MyCursor Cursor 15 For Select name From hrmis..sysobjects where xtype = ' u ' 16 -- "hrmis"是我需要查詢的數(shù)據(jù)庫(kù)名稱 17 -- "xtype='u'"的意思是:只查詢用戶表,系統(tǒng)表不要,但可能會(huì)出錯(cuò),網(wǎng)上有資料防止這種意外,至少我沒有報(bào)錯(cuò),就不理了。 18 19 -- 打開游標(biāo) 20 Open MyCursor 21 -- 定義變量 22 Declare @tableName nvarchar ( max ), @sql nvarchar ( max ), @counts int 23 Fetch Next From MyCursor Into @tableName 24 While @@Fetch_status = 0 25 -- @@Fetch_status = 0是指:游標(biāo)未到末尾 26 Begin 27 Set @sql = ' Select @counts=count(*) From ' + @tableName 28 -- print @sql 29 -- Exec(@sql) 30 -- 上面這句會(huì)報(bào)錯(cuò)的“@counts未定義之類的,我忘了,有興趣自己試試”,反正不能直接執(zhí)行就是了。 31 -- 正確的寫法是下面這句 32 Exec sp_executesql @sql ,N ' @counts Int out ' , @counts out 33 -- 好吧,我承認(rèn)我也不太了解這條語句的含意,但這是不重點(diǎn),重點(diǎn)是,它執(zhí)行成功了。 34 If @counts > 10000 35 -- 只顯示記錄數(shù)大于1W的表名(這里隨意就好了,不要也行) 36 print ( Convert ( nvarchar ( max ), @counts ) + ' ...... ' + @tableName ) 37 Fetch Next From MyCursor Into @tableName 38 End 39 -- 關(guān)閉游標(biāo) 40 Close MyCursor 41 Deallocate MyCursor 42 End 43 GO
保存一下,然后執(zhí)行此存儲(chǔ)過程,就可以自動(dòng)遍歷數(shù)據(jù)庫(kù)中的所有表(647個(gè)表哇,蛋疼),然后把記錄數(shù)大于1W的表名跟相應(yīng)的記錄數(shù)都顯示出來,統(tǒng)計(jì)就不用這么麻煩了。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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