【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 '変数に?を利用したクエリ'
と書けばよい。
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の技術的なひとりごと
*1:https://social.technet.microsoft.com/wiki/contents/articles/16975.aspx
*2:The undocumented sp_MSforeachtable procedure
*3:http://blog.engineer-memo.com/2013/12/12/sql-server-%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E5%8D%98%E4%BD%8D%E3%81%AB%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%9F%E3%81%84%E5%A0%B4%E5%90%88/