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 分钟。
在我的项目中,我有一个 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 分钟。