假设存储过程需要10分钟才能运行并且不返回任何数据.
在SQL Server中调用存储过程并让代码不等待结果的正确方法是什么?有没有办法从T-SQL或连接中处理它?在ADO.NET和经典ActiveX ADO中有效的东西?
我想到的唯一方法是:
1)在T-SQL中创建一个作业
2)将基于T-SQL的代码加载到作业的第一步中
3)确保代码的最后一行删除作业
4)执行作业(我很确定这不会让你因为回应而停下来)我知道这是非常糟糕和苛刻的......但是
还有其他一些我没想到的T-SQL,你可以用一个存储过程来说"我知道没有回应......所以我选择不等待."?
是的你可以
使用SqlCommand.BeginExecuteNonQuery()异步调用它
或者在委托上异步调用它(将使用线程池中的线程),
或者在一个单独的线程上(自己创建)
在Classic ADO中,使用Connection的Open方法中的Option参数:
oConnection.Open(,,, adAsyncConnect)