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

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