>USE MASTER;
>GO
>
>RESTORE DATABASE digisatDB
> FROM DISK = N'\\Acer-2d60536d59\SQL\digisatDB.Bak'
>WITH
> FILE = 1,
> NOUNLOAD,
> REPLACE,
> STATS = 10
>GO
>
>ma mi genera il seguente errore:
>Messaggio 3101, livello 16, stato 1, riga 2
>Impossibile ottenere accesso esclusivo al database perché è in
>uso.
Per sovrascrivere un db tramite RESTORE DATABASE...WITH REPLACE occorre che il database non sia in uso durante l'operazione di ripristino, quindi ti devi assicurare di chiudere tutte le connessioni.
Un modo veloce consiste nell'impostare il db in single-user mode, eseguendo un rollback automatico di tutte le transazioni in corso.
Questa operazione può essere eseguita tramite il comando:
ALTER DATABASE <nome db>
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
A questo punto ti posizioni sul master (altrimenti sarai tu stesso a bloccare il ripristino) ed esegui il comando RESTORE DATABASE.
Al termine del restore non sarà necessario reimpostare il db in multi-user mode dato che verrà mantenuto il modello di accesso originario del backup set.
Inoltre affinché l'operazione vada a buon fine devi verificare che l'account utilizzato dal servizio MSSQLServer abbia le permission di share ed NTFS per accedere in full control al backup set remoto.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org