【问题标题】:Detecting disconnection of the client in SQL Server在 SQL Server 中检测客户端的断开连接
【发布时间】:2012-06-23 10:18:38
【问题描述】:

当与 SQL Server 的客户端连接(来自客户端)被切断时, 如何在 SQL Server(2008 或 2012)中检测到这种断开连接?

我可以用服务器触发器解决这个问题吗?

【问题讨论】:

    标签: sql sql-server triggers client


    【解决方案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 之前捕获“事件”,则此方法不起作用。
      猜你喜欢
      • 2021-02-21
      • 2014-04-14
      • 2020-08-27
      • 2014-01-24
      • 1970-01-01
      • 2011-02-27
      • 2020-01-15
      相关资源
      最近更新 更多