Si intenta acceder a la base de datos que ya está en el modo de usuario único, primero debe cerrar todas las conexiones a la base de datos; de lo contrario, recibirá un mensaje de error:
Msg 5064, Nivel 16, Estado 1, Línea 1 No se pueden realizar cambios en el estado u opciones de la base de datos 'DatabaseName' en este momento. La base de datos está en modo de usuario único y actualmente hay un usuario conectado a ella. Msg 5069, Nivel 16, Estado 1, Línea 1 La instrucción ALTER DATABASE falló.
La siguiente consulta mata los procesos que acceden a la base de datos:
-- Create the sql to kill the active database connections
declare @execSql varchar(1000), @databaseName varchar(100)
-- Set the database name for which to kill the connections
set @databaseName = 'DatabaseName'
set @execSql = ''
select @execSql = @execSql + 'kill ' + convert(char(10), spid) + ' '
from master.dbo.sysprocesses
where db_name(dbid) = @databaseName
and
DBID <> 0
and
spid <> @@spid
exec(@execSql)
GO
Entonces debería poder volver a poner la base de datos en modo multiusuario como de costumbre:
ALTER DATABASE 'DatabaseName' SET MULTI_USER