私はSQL Server 2008でスキーマの開発を積極的に行っており、データベースの削除/作成スクリプトを頻繁に再実行したいと考えています。
USE [master]
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'MyDatabase')
DROP DATABASE [MyDatabase]
GO
このエラーがよく発生します
Msg 3702, Level 16, State 4, Line 3
Cannot drop database "MyDatabase" because it is currently in use.
オブジェクトエクスプローラーペインでデータベースを右クリックし、コンテキストメニューから削除タスクを選択すると、「既存の接続を閉じる」チェックボックスが表示されます。
スクリプトでこのオプションを指定する方法はありますか?
ベストアンサー1
次のコマンドで、全員の接続を切断し、トランザクションをロールバックできます。
alter database [MyDatbase] set single_user with rollback immediate
その後、データベースを安全に削除できます :)