题
是否可以从一个存储过程异步调用另一个存储过程?
编辑: 具体来说,我正在使用 DB2 数据库。
解决方案
执行摘要:是的,如果您的数据库有消息队列服务。
您可以将消息推送到队列中,队列处理器将异步使用它。
- 甲骨文:队列
- SQL服务器:服务经纪人
- 数据库2:事件经纪人
对于“纯”存储过程语言(PL/Sql 或 T-Sql),答案是否定的,因为它违背了大多数数据库所具有的基本事务模型。
但是,如果您的数据库有排队机制,您可以使用它来获得相同的结果。
其他提示
使用MS Sql Server 2005,尝试Service Broker和/或CLR存储过程。我认为TSQL没有任何直接构建。
听起来你需要使用Cron(或windows equiv)来安排一些预定的工作。您可以使用初始存储的proc调用在DB中设置某种标志,然后由cron作业定期检查。如果您需要在执行第二个作业之前有特定的延迟,那么您应该可以通过cron作业安排任务来完成此操作。
不隶属于 StackOverflow