如何列出打开的sql server连接并关闭特定的连接

问题描述 投票:0回答:2

我们有一个远程SQL服务器和使用它的c#ERP客户端程序。有时人们在打开程序而忘记关闭它。在这种情况下,它们的SQL连接保持打开状态,我将无法执行某些操作。

是的,我可以通过设置计时器从客户端进行此操作,并继续检查它们是否进行了任何操作或它们是否为AFK,但是,我希望能够在没有客户端自愿的情况下关闭连接。

总而言之,1-有什么方法可以检查打开到服务器的所有连接并通过SQL查询或命令列出它们。2-强制关闭我想要的特定连接,即使他们是否正在睡觉?

任何帮助将不胜感激。非常感谢。

sql-server database-connection connection-close sqlconnection.close
2个回答
1
投票

检查表sys.dm_exec_sessionsKILL语句


0
投票

对于列表:

select *
from sys.dm_exec_sessions

用于通过ID终止特定的连接:

declare @session_id     int;
set          @session_id= ''

select 
    @session_id=cast(req.session_id as int) from sys.dm_exec_requests req where req.command='DbccSpaceReclaim'group by req.session_id

begin

declare @sql nvarchar(1000)
select @sql = 'kill ' +  cast(@session_id  as varchar(50))
 exec sp_executesql  @sql
end
© www.soinside.com 2019 - 2024. All rights reserved.