Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/09/2010, 21:59
Avatar de iislas
iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Como sacar usuarios Inactivos despues de x tiempo SQL Server2000?

Checa este codigo:

Código SQL:
Ver original
  1. DECLARE @SQL nvarchar(30)
  2. DECLARE @Identificador INT
  3. DECLARE @FechaHora datetime
  4. DECLARE @AHORA Datetime
  5. DECLARE Cursor_Usuarios CURSOR FOR
  6. SELECT spid,last_batch
  7.  FROM master..sysprocesses
  8.  WHERE program_name LIKE 'PONER_NOMBRE_APLICACION' AND
  9.       dbid = 6  AND      --- Id de tu base de datos
  10.       loginame NOT LIKE 'sa%'
  11.  
  12. -- dbid=6 es la base de datos que me interesa, se puede poner otra o no poner nada para que sean todas
  13.  
  14. -- loginame not like 'sa%' --esto es para que no me cierre mis sesiones
  15.  
  16.  
  17.  
  18. SELECT @AHORA=GETDATE()
  19. OPEN Cursor_Usuarios
  20. FETCH NEXT FROM Cursor_Usuarios INTO @Identificador,@FechaHora
  21. WHILE (@@FETCH_STATUS <> -1)
  22. BEGIN
  23.    IF (@@FETCH_STATUS <> -2)
  24.    BEGIN  
  25.       IF ABS(DATEDIFF(MINUTE,@FechaHora,@AHORA))>=30  --- minutos inactivo
  26.       BEGIN
  27.        SET @SQL= 'kill ' + CONVERT(CHAR,@Identificador)
  28.        EXEC sp_executesql @SQL
  29.       END
  30.    END
  31.    FETCH NEXT FROM Cursor_Usuarios INTO @Identificador,@FechaHora
  32. END
  33. CLOSE Cursor_Usuarios
  34. DEALLOCATE Cursor_Usuarios
  35. GO
__________________
MCTS Isaias Islas