it-swarm-eu.dev

Jak vynutit přetažení databáze v SQL Server 2008

Snažím se vynutit vyřazení databáze, ale po vyřazení z databáze, když se pokusím znovu vytvořit databázi, dostávám chybu

nelze vytvořit soubor C:\Program Files ..... [databasename] .mdf, protože již existuje

Zde je můj dotaz vynutit přetažení databáze

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

Pochopil jsem, že výše uvedený dotaz ruší databázi, ale neodstraňuje .ldf a .mdf soubory. Jak důkladně odstranit databázi?

Normální dotaz

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

Jak vynutit přetažení databáze, která také odstraní .mdf a .ldf soubory?

69
srk

Očekává se a dokumentované chování :

Vypuštění databáze odstraní databázi z instance serveru SQL a odstraní soubory fyzického disku použité v databázi. Je-li databáze nebo některý z jejích souborů offline, když je zrušen, diskové soubory nebudou odstraněny. Tyto soubory lze ručně odstranit pomocí Windows Badatel. Chcete-li odebrat databázi z aktuálního serveru bez odstranění souborů ze systému souborů, použijte sp_detach_db.

Tak proč berete databázi nejprve jako první? Stačí jej nastavit do SINGLE_USER režim a pak jej zrušte, jak je dokumentováno v SQL Server Books Online.-

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

Pamatujte, že zálohy databáze nebudou odstraněny jako součást výše popsaného procesu.

119
marc_s