SQL Server 2008'de açılan veritabanı zorla


68

Bir veritabanını bırakmaya zorluyorum, ancak veritabanını bıraktıktan sonra, veritabanını yeniden oluşturmaya çalıştığımda hata alıyorum

C: \ Program Files ..... oluşturamazsınız [[veritabanı_adı] .mdf çünkü zaten var

İşte veritabanını bırakmaya zorlamak için sorgum

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

Ben, yukarıda sorgu veritabanı düşüyorsa, ancak silme değil anlaşılmaktadır .ldfve .mdfdosyaları. Veritabanını nasıl tamamen bırakmalı?

Normal bir sorgu

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

Ayrıca .mdfve .ldfdosyaları da silen bir veritabanını zorlamak nasıl ?

Yanıtlar:


116

Beklenen ve belgelenen davranış budur :

Bir veritabanını bırakmak, veritabanını bir SQL Server örneğinden siler ve veritabanı tarafından kullanılan fiziksel disk dosyalarını siler. Veritabanını veya dosyalarından herhangi biri düştüğünde çevrimdışıysa, disk dosyaları silinmez. Bu dosyalar Windows Gezgini kullanılarak manuel olarak silinebilir. Dosyaları, dosya sisteminden silmeden geçerli sunucudan veritabanını kaldırmak için sp_detach_db dosyasını kullanın.

Peki neden ilk önce veritabanınızı çevrimdışına alıyorsunuz? Yalnızca SINGLE_USERmoda getirin ve ardından SQL Server Books Online'da belgelenen şekilde bırakın.

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

Veritabanı yedekleri olacak, Not değil yukarıda belgelenen sürecinin bir parçası olarak silinecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.