Sql 服务器的定时触发器

Timed triggers for Sql Server

在我的项目中,我有一个 SQL table 来跟踪登录的用户。如果用户登录,则标志字段设置为 true,如果用户注销,则相同的标志设置为 false.

应用程序 (C#) 负责打开或关闭标志,当用户在关闭应用程序之前登录和注销时一切正常。

但是,当用户登录时,例如在停电的情况下——假设电源在客户端关闭,但在服务器端没有——用户连接将在应用程序设置 logged 标记为 false。为了补偿这种不确定情况,我希望 SQL 服务器定期检查(例如,每 5 分钟一次)客户端是否仍然 there/logged/active。

如何在服务器端为这种情况创建触发器?

另一种方法是简单地在数据库中有一个 last-contact-time 并让客户端每 4.5 分钟通知一次服务器客户端仍然是 "logged in"。

要获得 'logged in users' 只需 select 其中 now 少于 last-contact-time 加 5 分钟。