データベースの復旧モデルを一括で取得する

先日、SQLServerの特定インスタンス内にある全データベースの復旧モデルを調べるバッチファイルを作成しました。
そのうち無くしてしまいそうなので、ここに残しておきます。

@ECHO OFF

:: 接続先を指定[既定値は自分自身]
SET SERVERNAME=%COMPUTERNAME%

ECHO 接続先を指定してください
SET /PSERVERNAME=[初期値:%SERVERNAME%]>

:: ログファイルのパスを設定
SET LOGFILE="%~dp0RecovList_%SERVERNAME%.log"

:: クエリを実行
OSQL -Usa -P.SSVPASS -dmaster -S%SERVERNAME% -w2000 -Q"sp_MSforeachdb @command1=\"SELECT '?' as DBNAME, Convert(varchar(20),DATABASEPROPERTYEX(N'?', N'RECOVERY')) as 復旧モード\"" > %LOGFILE%

:: ログファイルを表示
NOTEPAD %LOGFILE%


以前、他の記事でも書きましたが、sp_MSforeachdbを使うのがポイントです。
あとはDATABASEPROPERTYEXでデータベースの設定を取得出来るというのもとても大事です。