【问题标题】:Asynchronous Stored Procedure Calls异步存储过程调用
【发布时间】:2010-09-06 17:30:54
【问题描述】:

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

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

【问题讨论】:

    标签: sql stored-procedures db2


    【解决方案1】:

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

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

    • Oracle:队列
    • Sql Server:服务代理
    • DB2:事件代理

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-05-07
          • 1970-01-01
          • 2011-03-18
          • 2020-01-15
          • 2021-04-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多