我想在会话被终止/结束时使用触发器。有可能吗?
我的程序正在连接表格并在线时更新“在线”字段。如果我的程序崩溃或我的mssql连接被杀,我想更新“在线”字段......
例如:当我的程序在线时,它会被spid并更新SERVICE_TABLE(spid,online)
SEVICE_TABLE
------------
id
spid
online
当会话被终止/结束时,触发器查找SERVICE_TABLE。在SERVICE_TABLE中杀死spid,将“online”字段更新为false。
答案 0 :(得分:2)
我们有类似的情况。我基本上在我们的服务表中添加了“lastseen”。客户端中的后台进程每分钟更新一次该字段。 (每次更新字段时,请务必创建新的数据库连接。)
如果“lastseen”字段过去超过5分钟,我们假设应用程序已经走了兴登堡的路。
答案 1 :(得分:1)
SQL Server中没有DDL注销触发器(尽管有登录触发器)。 Service Broker可用于处理AUDIT_LOGOUT事件。