2011年1月13日 星期四

sp_MSforeachdb and sp_MsForEachTable

看到MSSQLTips 上這篇文章,

Making a more reliable and flexible sp_MSforeachdb

測試了一下發現挺實用,可以自由發揮

--instance中所有DB
exec sys.sp_MSforeachdb 'select ''?'' ' 


--instance中所有DB空間使用狀況
exec sys.sp_MSforeachdb'use ?; exec sp_spaceused'


--instance中所有DB訊息
exec master.sys.sp_MSforeachdb'use ?; exec sp_helpdb ? '

--目前DB中所有table訊息(含資料結構)
exec sys.sp_MsForEachTable 'sp_help ''?'' '


--目前DB中所有table筆數
exec sys.sp_MsForEachTable 'select ''?'', count(*) from ? '


其中傳入的變數 ?是否要當字串或欄位或物件,就依平常我們直接select 時的想法去想就可以明白了
要當字串,則前後加單引號, 要當物件則直接使用? 或[?] 都可以

沒有留言:

張貼留言

SSAS 作業已因鎖定衝突而取消

SSAS在process 與 mdx query並存應用時,如果mdx 語法含crossjoin或維度member很多時,就容易顯示錯誤【作業已因鎖定衝突而取消。】 當然,SSAS應是process與 query分開時段執行,但因種種先知後知原因,專案就是有需要這樣應用,即使是已...