在 SQL Server 中检测客户端的断开连接
Posted
技术标签:
【中文标题】在 SQL Server 中检测客户端的断开连接【英文标题】:Detecting disconnection of the client in SQL Server 【发布时间】:2012-06-23 10:18:38 【问题描述】:当与 SQL Server 的客户端连接(来自客户端)被切断时, 如何在 SQL Server(2008 或 2012)中检测到这种断开连接?
我可以用服务器触发器解决这个问题吗?
【问题讨论】:
【参考方案1】:您可以为Audit Logout 事件创建一个event notification。通知可以启动activated procedure。考虑一下事件通知是异步的。
【讨论】:
【参考方案2】:您可以查询sys
表之一 (sysprocesses
)
SELECT
DB_NAME(dbid) AS Database,
loginame AS LoginName
FROM sys.sysprocesses
您还可以运行以下存储过程来查看谁处于活动状态:
sp_who2
您必须让 SQL 作业或活动代理检查谁退出了。
【讨论】:
Database 是保留字,需要加括号,如:[Database]。否则我们会得到“关键字‘数据库’附近的语法不正确”。我试图编辑你的帖子,但我的编辑被拒绝了。 如果您需要在用户重新登录或重用会话 ID 之前捕获“事件”,则此方法不起作用。以上是关于在 SQL Server 中检测客户端的断开连接的主要内容,如果未能解决你的问题,请参考以下文章