linea - quitar usuario unico sql server
SQL Server 2008 R2 atorado en modo de usuario único (4)
Use DAC (Conexión de administrador dedicado) . Asegúrese de haberlo habilitado primero En el tipo de SSMS en admin: para Nombre del servidor después de conectarse al maestro ALTER DATABASE SET MULTI_USER
Después de ejecutar un despliegue de DB (desde un proyecto de base de datos VS SQL Server) en una base de datos local, que falló, la base de datos se ha dejado en un estado donde tiene el modo de usuario único dejado (el despliegue se ejecuta como modo de usuario único).
Cuando me conecto desde SSMS y pruebo algo como lo siguiente:
ALTER DATABASE MyDatabase
SET MULTI_USER;
GO
Me sale el error:
Los cambios en el estado u opciones de la base de datos ''MyDatabase'' no se pueden hacer en este momento. La base de datos está en modo de usuario único y un usuario está actualmente conectado a ella.
Intenté desconectar la base de datos, que SSMS me dice que tiene éxito, pero parece que en realidad no hace nada. Hasta ahora, solo he podido evitar esto al descartar y volver a crear la base de datos (lo cual está bien, porque es solo una base de datos de prueba local). Sin embargo, me gustaría poder restablecer el estado.
¿Cómo puedo convencer a SQL Server para sacar esta base de datos del modo de usuario único?
En la primera ejecución siguiente consulta en la base de datos master
exec sp_who
Si no puede encontrar al culpable, intente
SELECT request_session_id FROM sys.dm_tran_locks
WHERE resource_database_id = DB_ID(''YourDatabase'')
Luego mata todo el proceso que usa tu base de datos con la siguiente consulta:
KILL spid
A continuación, ejecute la siguiente consulta:
USE Master
ALTER DATABASE YourDatabase SET MULTI_USER
Esto fue respondido aquí , el código es:
use master
ALTER DATABASE YourDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE
--do you stuff here
ALTER DATABASE YourDatabase SET MULTI_USER
Pruebe los comandos a continuación
Primero ejecuta estos tres comandos
USE [master]
SET DEADLOCK_PRIORITY HIGH
exec sp_dboption MyDBName, ''single user'', ''FALSE'';
Segundo ejecuta estos dos comandos
ALTER DATABASE MyDBName SET MULTI_USER WITH NO_WAIT
ALTER DATABASE MyDBName SET MULTI_USER WITH ROLLBACK IMMEDIATE