Cómo forzar que una base de datos de SQL Server 2008 se desconecte


106

¿Cómo hago para que mi base de datos se desconecte, sin importar qué o quién ya la esté usando?

Lo intenté:

ALTER DATABASE database-name SET OFFLINE;

Pero sigue colgando después de 7 min.

Quiero esto porque necesito probar el escenario.

¿Si es posible?

Respuestas:


186

Salir de línea

USE master
GO
ALTER DATABASE YourDatabaseName
SET OFFLINE WITH ROLLBACK IMMEDIATE
GO

Ir en línea

USE master
GO
ALTER DATABASE YourDatabaseName
SET ONLINE
GO

8
@radbyx: MSDN dice que se use mastercuando se opera el estado de DB
abatishchev

17
@radbyx: Si usa MY_DATABASE, entonces ALTER DATABASE MY_DATABASE SET OFFLINE fallará, ¡ porque lo está usando! Sí, eso me picó ...
TarkaDaal

10
No funcionó para mí: Msg 5061, Nivel 16, Estado 1, Línea 1 ALTER DATABASE falló porque no se pudo colocar un bloqueo en la base de datos 'MyDatabase'. Inténtelo de nuevo más tarde. Msg 5069, nivel 16, estado 1, línea 1 Error en la instrucción ALTER DATABASE.
Andez

6
He visto casos en los que todavía necesita usar un 'sp_who2 active' / 'sp_whoisactive' para ver algunas conexiones obstinadas de máquinas de trabajo programadas o cosas middletier y ejecutar KILL con el número SPID para deshacerse de ellos
Chris Wood

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.