2012年3月29日木曜日

SQL ServerでDataフォルダを取得する方法

SQL ServerのDBをユーザープログラムからバックアップ/リストアするときのお話。
Management StudioでDBをバックアップするとデフォルトの保存先はSQL Server内のBackupフォルダになります。
逆にDBを復元する時、デフォルトパスはSQL Server内のDataフォルダです。


Q. ではこのDataフォルダの絶対パスを取得するにはどうすればいいでしょう?


A. SQL Serverのインスタンスに必ず1つ存在するmaster.mdfのパスを取得しましょう。
以下のSQLでmasterデータベースのmdfファイルパスを取得します。
select [physical_name] from master.sys.[database_files] where [name]='master'
通常はこれがProgram Files\SQL Server\MSSQL\Data\master.mdfを指しているのでDataディレクトリが分かります。