2010-10-22 10 views
4

Je reçois ceci: «Un accès exclusif ne pouvait pas être obtenue parce que la base de données est en cours d'utilisation RESTORE DATABASE se termine anormalement. »En fait, je développe une application de bureau vb .net qui a besoin de restaurer une base de données en utilisant un .bak Comment faire?

D'abord le message m'a dit que je dois me connecter à master db pour exécuter la restauration mais je le change et j'ai reçu le message ci-dessus.

L'instruction SQL paramétrisée J'utilise est:

cmd.CommandText = "RESTORE DATABASE aguasdelbosque" + "FROM DISK = @archivo"

Répondre

5

Vous devez d'abord lancer tous les utilisateurs de la base de données, jetez un oeil à Kill All Active Connections To A Database sur la façon de le faire

+0

ou ... 'USE master GO; DECLARE @SQL VARCHAR (MAX); SELECT @SQL = COALESCE (@SQL, '') + 'Tuer' + CONVERT (VARCHAR, SPId) + ';' FROM MASTER..SysProcesses O WH SPId <> @@ SPId AND [dbid] = DB_ID ('DATABASE_NAME'); EXEC (@SQL); ' – Brad

+0

@Brad si vous avez beaucoup de connexions pendant que ce code est en cours d'exécution, il est possible que d'autres personnes entrent, il est préférable de le mettre en mode mono-utilisateur – SQLMenace

+0

Salut les gars merci beaucoup ... Alors, puis-je utiliser celui-ci? : ALTER DATABASE aguasdelbosque SET SINGLE_USER AVEC ROLLBACK IMMEDIATE Pour mettre en mode mono-utilisateur la base de données .. – Alejandro

1

Une autre approche pour restaurer la base de données utilise la bibliothèque SQL Server Management Objects. Pour tuer tous les processus, la classe Server a la méthode KillAllProcesses ou KillDatabase. La classe Database a les méthodes SetOffline et SetOnline. Pour restaurer la base de données, vous devez utiliser la méthode SqlRestore de la classe Restore. Pour plus d'informations ou d'autres lectures, essayez les liens ci-dessous.

http://www.sqldbatips.com/showarticle.asp?ID=40

http://social.msdn.microsoft.com/Forums/en/sqlsmoanddmo/thread/08416c9d-0e8d-4021-b5ea-b9dc634c03e8

http://social.msdn.microsoft.com/Forums/en-US/sqlexpress/thread/52638e68-5c88-49f1-9b76-6bfa2387da18

http://sqlblogcasts.com/blogs/seanprice/archive/2007/07/11/Killing-ProcessIDs-using-SMO.aspx

http://www.codeproject.com/KB/database/BackupRestoreWithSmo.aspx

+0

grand homme que vous – Alejandro