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

Komentarze

  1. dotnetomaniak.pl on 11.17.2009

    MS SQL – zapytania do detach, attach i drop connections : andrzej.net.pl…

    Dziękujemy za publikację – Trackback z dotnetomaniak.pl…

Dodaj komentarz