MS SQL – zapytania do detach, attach i drop connections

Witam po krótkiej przerwie ;)
Zdobywanie tytułu magistra i mały projekt, który kończę „po godzinach” normalnej pracy spowodował, że czasu na bloga nie zostawało. Postaram się jednak częściej pisać, by biorący udział w konkursie na dotnetomaniaku mieli dodatkowe źródło ;)

Dziś podczas kończenia niewielkiej aplikacji do zarządzania zadaniami przeprowadzałem testy pod tytułem „była sobie baza danych a teraz nie ma” ;) Szlag mnie trafiał po dwudziestym powtórzeniu detach / attach, więc postanowiłem sprawę załatwić bez klikania. Potrzebne do tego były jednak zapytania, które pozwalały wykonać odpowiednie akcje. Może komuś oszczędzi to kilku dłuższych chwil na szukanie…

Zapytanie do odłączenia bazy:

sp_detach_db 'task_manager', 'true'

Podczas jego wykonywania można jednak napotkać na błąd:

Cannot detach the database ‘task_manager’ because it is currently in use.

Lepiej więc wykonać najpierw małe hokus-pokus do ubicia połączeń ;)

USE master;
GO
ALTER DATABASE task_manager
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE task_manager
SET MULTI_USER;
GO

Natomiast ponowne podłączenie bazy:

EXEC sp_attach_db @dbname = 'task_manager',
@filename1 = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\task_manager.mdf',
@filename2 = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\task_manager_log.ldf'

Voilà! ;)


Podobne wpisy
MSSQL – porównywanie dat

Możesz śledzić odpowiedzi do tego wpisu za pomocą RSS 2.0 feed. Możesz leave a response, or trackback z Twojej własne strony.

1 Komentarz »

 
 

Dodaj komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*