【SQLServer】sp_MSforeachdb , sp_MSforeachtable

SQLServerにはUndocumented系と呼ばれる非公式ストアドプロシージャが存在する。

 

Microsoftとしては以下の通り利用は推奨していないが*1

It is strongly recommended to avoid using undocumented features of SQL Server in your Production environment.

タイトルの2つは有用である。

 

使い方は簡単で、

 EXEC sp_MSforeachXXX  '変数に?を利用したクエリ'

と書けばよい。

 

*2*3

EXEC sys.sp_MSforeachdb 'USE ?;SELECT DB_NAME()'

EXECUTE sp_MSforeachtable 'DBCC CHECKTABLE ([?])';

 

参考

 

sp_MSforeachdb

SQL Server でデータベース単位にクエリを実行したい場合の方法 at SE の雑記

 

sp_MSforeachtable

undocumented なものを見つけたので、調べてみる - その1 ( sp_MSforeachtable ) - - 都内で働くSEの技術的なひとりごと