Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 几分钟后终止SQL Server事务_Sql Server 2008_Transactions - Fatal编程技术网

Sql server 2008 几分钟后终止SQL Server事务

Sql server 2008 几分钟后终止SQL Server事务,sql-server-2008,transactions,Sql Server 2008,Transactions,如果事务在一段时间内既没有被取消也没有提交,有没有办法将SQL Server 2008配置为终止该事务?(比如说电源、网络连接或任何切断计算机电源的东西。) 要么在某些已定义的规则集之后自动执行,要么创建并调用一个命令行应用程序来查询SQL server中的活动事务+它们已运行的时间。。。然后指示SQL Server关闭那些“冻结”的服务器。引用Gail Shaw的话: SQL Server不会超时查询,而连接的应用程序(在本例中为查询分析器)会超时查询 无论您使用哪种技术进行连接(ADO等),

如果事务在一段时间内既没有被取消也没有提交,有没有办法将SQL Server 2008配置为终止该事务?(比如说电源、网络连接或任何切断计算机电源的东西。)

要么在某些已定义的规则集之后自动执行,要么创建并调用一个命令行应用程序来查询SQL server中的活动事务+它们已运行的时间。。。然后指示SQL Server关闭那些“冻结”的服务器。

引用Gail Shaw的话:

SQL Server不会超时查询,而连接的应用程序(在本例中为查询分析器)会超时查询

无论您使用哪种技术进行连接(ADO等),都可能有一个连接超时和执行超时属性,您可以在调用代码中更改该属性。默认值通常为30秒

您可能会将这样的内容封装在一个循环中,以杀死每个有问题的spid:

select datediff(second, last_batch, getdate()) as secs_running, *
from sys.sysprocesses
where hostname != ''
    and open_tran = 1

对于如何最好地找到哪些进程是“安全的”终止,可能会有很多意见,我当然有点担心根据任意的时间跨度自动执行这样的操作。我也不确定在此过程中所做的任何数据更改是否正确。

谢谢您的回答。我将保留它作为最后手段:)更改将回滚,从这个意义上说,任何在终止时正在进行的事务都将回滚。链接的问题是在没有包含事务的情况下执行许多单独的删除操作,因此已经执行的操作不会受到影响。