Cierre (KILL) todos los SPIDs conectados a una base de Datos
|En el caso que se tienen que cerrar todas las conexiones a una base de datos de SQL Server, se puede usar un cursor y el comando KILL para cerrar las sesiones. En este caso, se incluye todos los SPIDs conectados a la base de datos en el cursor. Después se crea la cadena con KILL
Debajo está el comando que usa LiteSpeed para terminar todas las sesiones antes de completar sus tareas.
-- Terminar sessiones en una base de datos
-- Ejecute desde master u otra base de datos
-- Cambie DB_NAME a la base de datos seleccionada
-- Declarar un varchar
DECLARE @cmdKill VARCHAR (50)
-- Popule el cursor con los SPIDs conectados a la base de datos
DECLARE killCursor
CURSOR FOR
SELECT 'KILL ' + Convert(VARCHAR (5), p.spid )
FROM master.dbo.sysprocesses AS p
WHERE p.dbid = db_id( 'DB_NAME')
-- Abre el cursor
OPEN killCursor
FETCH killCursor INTO @cmdKill
-- Termina todos los SPID conectados a esta base de datos
WHILE 0 = @@fetch_status
BEGIN
EXECUTE (@cmdKill )
FETCH killCursor INTO @cmdKill
END
-- Cierre el cursor
CLOSE killCursor
DEALLOCATE killCursor