Después de hacer clic en "Desconectar la base de datos" en el estudio de administración, este mensaje permanece bloqueado y no se cerrará si hace clic en Cerrar.
¿Cuál es una buena manera de lidiar con trabajos atascados como estos en el estudio de administración? ¿Puedes matarlos a través del monitor de actividad? ¿Debo buscar qué proceso está deteniendo este trabajo y terminarlo?
sql-server
ssms
AV
fuente
fuente
ALTER DATABASE foo SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
primero ... de lo contrario, simplemente se sienta y espera, y para una base de datos ocupada, eso podría ser para siempre.Respuestas:
Yo diría que nunca use el elemento "Desconectar" en la GUI a menos que sepa con certeza que la base de datos no está en uso. Por cualquier cosa. Eso es difícil de saber sin hacer un poco de trabajo preliminar, así que ¿por qué no guardar este script en algún lugar y usarlo siempre?
Y luego el recíproco, por supuesto:
La razón por la que debe configurarlo
SINGLE_USER
primero es eliminar a los usuarios existentes (hay una opción para hacerlo en el diálogo de desconexión, pero no en el diálogo de desconexión), ya que SQL Server necesita acceso exclusivo a la base de datos para poder fuera de línea. Ahora, es posible que desee hacer un poco de trabajo de campo adicional de todos modos para ver quién está utilizando actualmente la base de datos, como si lo hiciera en medio de una operación de copia de seguridad grande o un trabajo ETL o lo que sea, eso podría ser problemático.EDITAR : He presentado una sugerencia en Connect sobre esto (ver Connect # 2687832 ) y también lo he publicado en Trello (archivado en "Explorador de objetos").
fuente
Cuando ya esté en la situación de bloqueo, no olvide que puede buscar conexiones abiertas en todo el servidor con
en otra base de datos, como master.
Escanee los resultados en busca de cualquier lugar donde la base de datos sea la que está intentando desconectar.
Tenga en cuenta el valor de columna spid (Id. De proceso) de esas filas.
Uno a la vez, corre
donde "##" es el spid.
Ciertamente tenga cuidado de asegurarse de que esos procesos no sean importantes para dejarlos en ejecución ... se terminarán sin siquiera terminar el último comando y sin previo aviso.
fuente