質問: sql server management studio express を使ってのデータベース削除 microsoft sql server management studio express を使ってsqlを学んでいる入門者です。使用方法でわからない事があるので教えてください。 以下はすべてmicrosoft sql server management studio express上での作業です。 (1)'test'の名前で新しいデータベースを作成 (2)作成されたデータベース'test'のアイコンを右リック→タスク→バックアップで、データベースをバックアップ ここまでの操作で"c:\program files\microsoft sql server\mssql.1\mssql\backup"フォルダには'test.bak'でバックアップファイルが作成されました。 次に (3)作成されたデータベース'test'のアイコンを右リック→削除→「バックアップを削除し、データベースの履歴情報を復元する」にチェックが入っているので、そのまま実行。 質問ですが、以上の操作を行えばデータベース本体の他に(2)で作成されたバックアップファイル'test.bak'も削除されると思ったのですが、そのまま削除されずに残ってしまいます。 (3)の「バックアップを削除し、データベースの履歴情報を復元する」のオプションはどういう意味なのでしょうか。ヘルプを参照しましたが、やはりバックアップファイルは削除されるのではないかと思うのですが・・
回答: 実際に 2タイプの削除操作の際にバックでどんな t-sql が動いているか、sql server management studio の [ツール]-[sql server profiler] でトレースして確認することができます。 実験したデータベースは作って間もない、テーブルも作ってないデータベースです。 大きく違うのは、 [バックアップを削除し、データベースの履歴情報を復元する] にチェックを入れた場合は sp_delete_database_backuphistory というストアド プロシージが実行され、その後に drop database が実行されるのに対し、 [バックアップを削除し、データベースの履歴情報を復元する] にチェックを入れなかった場合は drop database だけが実行されていました。 (実際にはその過程でいろんな select が動いてます) バックアップのファイルを物理的に削除するというよりは、システム db などに記録されている「バックアップの履歴」を削除するというイメージじゃないですかね。 バックアップしたファイルは sql server からするとバックアップした瞬間から外部ファイルであって、sql server の管理外にあるファイルになるんだと思います。 余談ですが、sql server profiler というツールはかなり便利なツールです。 management studio のような gui ツールで db を操作した時、実際に sql server 上ではどんな sql 文を実行しているのかが分かりますので、例えば自作の web ブラウザ版 management studio のようなツールを開発するのにも役立ちます。