?? 末公開的存儲過程.txt
字號:
sp_MSforeachdb
leo_lesley 11:21:18
mssql里sp_MSforeachtable和sp_MSforeachdb的用法
從mssql6.5開始,微軟提供了兩個不公開,非常有用的系統存儲過程sp_MSforeachtable和sp_MSforeachdb,用于遍歷某個數據庫的每個表和遍歷DBMS管理下的每個數據庫。
我們在master數據庫里執行下面的語句可以看到兩個proc詳細的代碼
use master
exec sp_helptext sp_MSforeachtable
exec sp_helptext sp_Msforeachdb
sp_MSforeachtable系統存儲過程有7個參數,解釋如下:
@command1 nvarchar(2000), --第一條運行的T-SQL指令
@replacechar nchar(1) = N'?', --指定的占位符號
@command2 nvarchar(2000)= null,--第二條運行的T-SQL指令
@command3 nvarchar(2000)= null, --第三條運行的T-SQL指令
@whereand nvarchar(2000)= null, --可選條件來選擇表
@precommand nvarchar(2000)= null, --在表前執行的指令
@postcommand nvarchar(2000)= null --在表后執行的指令
sp_MSforeachdb除了@whereand外,和sp_MSforeachtable的參數是一樣的。
--我們來看看sp_MSforeachtable的用法(sp_MSforeachdb的用法類似):
--統計數據庫里每個表的詳細情況:
exec sp_MSforeachtable @command1="sp_spaceused '?'"
--檢查數據庫里每個表或索引視圖的數據、索引及text、ntext 和image 頁的完整性
--下列語句需在單用戶模式下執行(sp_dboption 'db_name', 'single user', 'true'),將true改成false就又變成多用戶了
exec sp_msforeachtable "dbcc checktable('?',repair_rebuild)"
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -