是否可以从一个存储过程异步调用另一个存储过程?

编辑: 具体来说,我正在使用 DB2 数据库。­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

有帮助吗?

解决方案

执行摘要:是的,如果您的数据库有消息队列服务。

您可以将消息推送到队列中,队列处理器将异步使用它。

  • 甲骨文:队列
  • SQL服务器:服务经纪人
  • 数据库2:事件经纪人

对于“纯”存储过程语言(PL/Sql 或 T-Sql),答案是否定的,因为它违背了大多数数据库所具有的基本事务模型。

但是,如果您的数据库有排队机制,您可以使用它来获得相同的结果。

其他提示

使用MS Sql Server 2005,尝试Service Broker和/或CLR存储过程。我认为TSQL没有任何直接构建。

听起来你需要使用Cron(或windows equiv)来安排一些预定的工作。您可以使用初始存储的proc调用在DB中设置某种标志,然后由cron作业定期检查。如果您需要在执行第二个作业之前有特定的延迟,那么您应该可以通过cron作业安排任务来完成此操作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top