SQL连接未关闭

时间:2013-10-09 20:48:35

标签: sql sql-server ado.net

我们如何关闭其他应用程序打开的连接?我有应用程序没有关闭应用程序我需要找到一种方法来关闭到服务器的非活动连接。

企业库用于数据库CRUD操作,我需要一个快速的解决方法。我不能应用程序,我必须编写一个实用程序来关闭不活动且超过15分钟的连接。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

也许你可以使用这样的东西

DECLARE @seconds int = 600
DECLARE @spid int
DECLARE @sql char(200)

DECLARE spid_cursor SCROLL INSENSITIVE CURSOR FOR
SELECT s.spid
FROM 
    master..sysprocesses s
WHERE 
    ( datediff( ss, s.last_batch, getdate())) > @seconds
    AND spid > 50 --only target user processes

OPEN spid_cursor

FETCH NEXT FROM spid_cursor INTO @spid

WHILE @@fetch_status = 0
BEGIN
    SELECT @sql = 'kill ' + convert(char(4), @spid)
    PRINT @sql
    EXEC(@sql)
    FETCH NEXT FROM spid_cursor INTO @spid
END

DEALLOCATE spid_cursor
GO