具有多个存储过程的任务

Posted

技术标签:

【中文标题】具有多个存储过程的任务【英文标题】:Task with multiple stored procedures 【发布时间】:2021-03-08 12:17:20 【问题描述】:

有没有办法在雪花中创建一个任务来调用多个存储过程?

例如,我有三个存储过程来检查多个表中的重复信息,我想通过任务调用所有三个存储过程,而不必创建一个新的 SP 来循环它们。

【问题讨论】:

【参考方案1】:

一个任务只能触发一个 SQL 语句或一个存储过程。

所以你必须做出决定:

    每个过程都有一个任务,任务之间存在依赖关系 一个包含调用所有三个存储过程的包装过程的任务(您不希望拥有的解决方案)

我认为链接任务是一个很好的解决方案。您必须在 CREATE TASK 语句中使用 AFTER 子句来实现正确的依赖关系:https://docs.snowflake.com/en/sql-reference/sql/create-task.html

【讨论】:

【参考方案2】:

一个任务只能调用 1 个 SP,所以如果您不想编写一个调用其他 SP 的 SP,那么创建一个由 3 个任务组成的链怎么样?

【讨论】:

以上是关于具有多个存储过程的任务的主要内容,如果未能解决你的问题,请参考以下文章

具有多个参数的 Excel 到 SQL 存储过程

Database.SqlQuery 调用具有多个输出参数的存储过程

我们如何处理具有单个实体类的多个存储过程

实体框架 - 具有多个结果集的存储过程 - 没有行返回

雪花存储过程调用具有迭代返回消息的多个语句

Entity Framework 6 中具有多个记录集的存储过程