Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/10/2008, 15:32
Avatar de iislas
iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Cerrar conecciones ODBC a base de datos en SQL server

El cierre se hace de forma automatica, pasado un tiempo.

Ahora si quieres hacer el cierre manual, entonces podrias intentar por:

DECLARE @SQL nvarchar(30)
DECLARE @Identificador int
DECLARE @FechaHora datetime
DECLARE @AHORA Datetime
DECLARE Cursor_Usuarios CURSOR FOR
select spid,last_batch
from master..sysprocesses
where program_name like 'PONER_NOMBRE_APLICACION'
AND dbid = 6 and loginame not like 'sa%'

-- dbid=6 es la base de datos que me interesa, se puede poner otra o no poner nada para que sean todas

-- loginame not like 'sa%' --esto es para que no me cierre mis sesiones

SELECT @AHORA=GETDATE()
OPEN Cursor_Usuarios
FETCH NEXT FROM Cursor_Usuarios INTO @Identificador,@FechaHora
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
BEGIN
IF ABS(DATEDIFF(minute,@FechaHora,@AHORA))>=30
BEGIN
set @SQL= 'kill ' + convert(char,@Identificador)
exec sp_executesql @SQL
END
END
FETCH NEXT FROM Cursor_Usuarios INTO @Identificador,@FechaHora
END
CLOSE Cursor_Usuarios
DEALLOCATE Cursor_Usuarios
GO