Як змусити базу даних drop у SQL Server 2008


68

Я намагаюся примусити скинути базу даних, але після скидання бази даних, коли я намагаюся відтворити базу даних, я отримую помилку

не вдається створити файл C: \ Program Files ..... [ім'я бази даних] .mdf, оскільки він уже існує

Ось мій запит, щоб змусити скинути базу даних

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

Я зрозумів, що вищезазначений запит видаляє базу даних, але це не видалення файлів .ldfі .mdf. Як ретельно скинути базу даних?

Нормальний запит

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

Як змусити скинути базу даних, яка також видаляє .mdfі .ldfфайли?

Відповіді:


116

Очікувана та задокументована поведінка :

Видалення бази даних видаляє базу даних з екземпляра SQL Server та видаляє файли фізичного диска, використовувані базою даних. Якщо база даних або будь-який з її файлів перебуває в автономному режимі, коли вона випадає, файли диска не видаляються. Ці файли можна видалити вручну за допомогою Провідника Windows. Щоб видалити базу даних з поточного сервера без видалення файлів з файлової системи, використовуйте sp_detach_db.

То чому ви берете свою базу даних в автономному режимі спочатку? Просто переведіть його в SINGLE_USERрежим, а потім перенесіть його, як це зафіксовано на SQL Server Books Online.-

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

Зауважте, резервне копіювання бази даних не буде видалено в рамках документа, описаного вище.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.