连接关闭后继续运行SQL查询

时间:2011-11-17 20:54:49

标签: sql-server

在SQL Server中,是否可以调用长时间运行的存储过程,关闭连接并让它完成?我不关心结果。基本上我想说“嘿SQL,在你自己的服务器上做这个工作。”

我想避免让一些服务与开放式连接坐下来等待它。

2 个答案:

答案 0 :(得分:2)

您需要使用BeginExecuteNonQuery(AsyncCallback, Object),然后使用一个有效无效的回调方法。值得一提的是,连接实际上并不是关闭

MSDN SqlCommand.BeginExecuteNonQuery Method

或者,您可以使用Service Broker对请求进行排队以运行存储过程。尽管如此,还是有相当多的管道设置。在你的情况下可能不值得。特别是如果您没有使用Service Broker做任何其他事情。这里的优点是可以在使用Service Broker排队后立即关闭连接,并且将消息放入队列是一种非常快速的操作。

答案 1 :(得分:1)

您还可以使用SQL代理作业来运行没有计划的过程,然后发出SQL命令以“EXEC msdb.dbo.sp_start_job @job_name =''”启动作业如果您必须更改命令经常可能不太理想,但如果需要,可以通过SQL调用来完成。