こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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)の「バックアップを削除し、データベースの履歴情報を復元する」のオプションはどういう意味なのでしょうか。ヘルプを参照しましたが、やはりバックアップファイルは削除されるのではないかと思うのですが・・

投稿日時 - 2006-08-18 12:26:50

QNo.2346630

困ってます

質問者が選んだベストアンサー

実際に 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 のようなツールを開発するのにも役立ちます。

投稿日時 - 2006-08-19 02:12:54

お礼

わかりやすい説明ありがとうございました。

投稿日時 - 2006-08-19 09:26:12

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)