Cara memaksa drop database di SQL Server 2008

68

Saya mencoba untuk memaksa menjatuhkan database, tetapi setelah menjatuhkan database, ketika saya mencoba membuat ulang database, saya mendapatkan kesalahan

tidak dapat membuat file C: \ Program Files ..... [databasename] .mdf karena sudah ada

Inilah pertanyaan saya untuk memaksa menjatuhkan database

Use master;
ALTER database [databasename] set offline with ROLLBACK IMMEDIATE;
DROP database [databasename];

Saya mengerti bahwa, kueri di atas adalah menjatuhkan database, tetapi tidak menghapus .ldfdan .mdffile. Bagaimana cara menjatuhkan database secara menyeluruh?

Kueri normal

Drop database [databasename] ; //deletes the database completely, including the ldf and mdf's.

Bagaimana cara paksa menjatuhkan database, yang juga menghapus .mdfdan .ldffile?

srk
sumber

Jawaban:

116

Itu adalah perilaku yang diharapkan dan didokumentasikan :

Menjatuhkan database menghapus database dari instance SQL Server dan menghapus file disk fisik yang digunakan oleh database. Jika database atau salah satu file-nya offline ketika dijatuhkan, file-file disk tidak dihapus. File-file ini dapat dihapus secara manual dengan menggunakan Windows Explorer. Untuk menghapus database dari server saat ini tanpa menghapus file dari sistem file, gunakan sp_detach_db.

Jadi mengapa Anda membuat offline database Anda terlebih dahulu? Cukup setel ke SINGLE_USERmode dan kemudian jatuhkan seperti yang didokumentasikan di SQL Server Books Online.-

USE master;
ALTER DATABASE [databasename] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [databasename] ;

Catatan, cadangan basis data tidak akan dihapus sebagai bagian dari proses yang didokumentasikan di atas.

marc_s
sumber