问题描述
|
我使用窗口应用程序,并且我想在用户会话超时后触发触发器,所以,
如何使用SQ L Server 2008检测用户是否中止或会话超时?
解决方法
SQL Server从不超时会话或请求。针对SQL Server发出的查询可能持续运行数小时甚至数天,而且不会中断。您可能会误以为对SQL Server的查询会超时并被中止,因为ADO.Net客户端选择在30秒后中止查询,因为那是
SqlCommand.CommandTimeout
的默认值:
等待时间的秒数
命令执行。默认值为30
秒。
但是,中止查询是SQL Server不参与的客户端特定行为。其他客户端(例如JDBC)使用不同的策略。
同样,即使数天未使用,SQL Server会话也永远不会超时。应用程序必须显式关闭连接以终止其会话。确实有一些断开会话的管理方法(“ 1”命令),除非采取极端的最后措施,否则永远不要使用这些方法。
因此,好消息是您不必做任何事情,您要的东西不存在,或者不应该从一开始就做。