5

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

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

4

3 回答 3

5

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

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

  • 甲骨文:队列
  • Sql Server:服务代理
  • DB2:事件代理

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

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

于 2008-08-25T00:34:44.053 回答
1

使用 MS Sql Server 2005,尝试使用 Service Broker 和/或 CLR 存储过程。我不认为有任何东西直接内置到 TSQL 中。

于 2008-08-25T00:35:41.523 回答
0

听起来您需要使用 Cron(或 windows equiv)安排一些预定的作业。您可以使用初始存储过程调用在数据库中设置某种标志,然后由 cron 作业定期检查。如果您需要在第二个作业执行之前有一个特定的延迟,您应该能够通过 cron 作业安排任务来做到这一点。

于 2008-08-25T00:42:57.263 回答