DatabaseOperation_DBM - Kill inactive connection

DECLARE cConnections CURSOR READ_ONLY FAST_FORWARD FOR
   SELECT spid
     FROM master..sysprocesses p
          INNER JOIN master..syslogins l ON p.sid = l.sid
    WHERE l.loginname LIKE 'MSDOMAIN1\%' AND l.loginname NOT IN ('MSDOMAIN1\xzhang3', 'MSDOMAIN1\ouli', 'MSDOMAIN1\atian1')
      AND p.last_batch <= DATEADD(mi, -1, GETDATE())

DECLARE @l_ConnectionId INT,
        @l_Sql          VARCHAR(100)

OPEN cConnections

WHILE 1 = 1
BEGIN
   FETCH NEXT FROM cConnections INTO @l_ConnectionId
  
   IF @@FETCH_STATUS <> 0
      BREAK
  
   SET @l_Sql = 'KILL ' + CONVERT(VARCHAR, @l_ConnectionId)
   EXECUTE( @l_Sql )
END

CLOSE cConnections
DEALLOCATE cConnections

posted @ 2012-08-15 10:26  Alex Tian  阅读(251)  评论(0编辑  收藏  举报