加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 我可以启动存储过程并立即返回而不等待它完成吗?

发布时间:2021-05-23 07:45:03 所属栏目:MsSql教程 来源:网络整理
导读:我们有一个存储过程,用户可以手动运行该过程,以获取一整天不断使用的报告的更新数字. 我有第二个存储过程应该在第一个存储过程运行后运行,因为它基于从第一个存储过程获得的数字,但是它需要更长的时间来运行并且是一个单独的进程,所以我不想使用户在第二个

我们有一个存储过程,用户可以手动运行该过程,以获取一整天不断使用的报告的更新数字.

我有第二个存储过程应该在第一个存储过程运行后运行,因为它基于从第一个存储过程获得的数字,但是它需要更长的时间来运行并且是一个单独的进程,所以我不想使用户在第二个存储过程运行时等待.

有没有办法让一个存储过程启动第二个存储过程,并立即返回而不等待结果?

我正在使用SQL Server 2005.

解决方法

看起来有多种方法可以实现这一点,但我发现最简单的方法是在SQL作业中设置过程的 Martin’s suggestion,并使用我的存储过程中的异步 sp_start_job命令启动它.
EXEC msdb.dbo.sp_start_job @job_name='Run2ndStoredProcedure'

这只适用于我,因为我不需要为我的存储过程指定任何参数.

其他建议可能会根据您的情况而有效

>使用像Martin和Sebastian这样的SQL Service Broker建议.如果您不介意设置它的复杂性并了解它的工作原理,这可能是最好的建议.
>在负责执行存储过程的代码中异步运行进程,如Mr.Brownstone suggested.

这不是一个坏主意,但在我的情况下,存储过程从多个地方调用,所以找到所有这些地方并确保他们调用第二个过程似乎并不实际.此外,第二个存储过程非常关键,忘记运行它可能会给我们公司带来一些重大问题.
>让第一个程序设置一个标志,并设置一个定期作业来检查该标志并运行它的设置,如Jimbo suggested.我不是一个很大的粉丝,不断运行并每隔几分钟检查一次更改,但它肯定是一个值得考虑的选择,取决于你的情况.

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读