Azure 数据工厂 - 等到存储过程执行后再继续下一个活动

问题描述 投票:0回答:1

我有一个 ADF 管道,其中定义了许多活动,包括一个存储过程。此存储过程之后是其他活动。存储过程使用多个管道变量来执行合并-插入-删除语句。

管道本身完全完成了它应该做的事情。所有步骤都可以执行,所有步骤都执行我想让它们执行的内容。

但是...合并-插入-删除语句可能需要一些时间。根据表的不同,这可能需要 1 秒,也可能需要 4 分钟。现在的问题就在这里。当活动存储过程

MergeInsertDelete
在管道中被触发时,它不会等待查询结束,后续活动(在本例中为 if 条件)已经执行。

所以我想知道

If
条件仅在执行存储过程生成的查询时才开始。

我现在已经通过为我的所有管道创建一个单独的管道来解决这个问题,但结果我不得不创建 120 个单独的管道,我怀疑这确实不是意图。在这些单独的管道中,我可以选中“等待完成”复选框,这在某种程度上迫使我完成查询。

    

stored-procedures azure-data-factory pipeline
1个回答
0
投票

您可以尝试的可能解决方法是在存储过程中添加输出参数

MergeInsertDelete

因此,存储过程代码执行完成后,它将设置输出参数的值。

并从脚本活动或查找活动中调用此存储过程,如下所示:

CREATE PROCEDURE MergeInsertDelete4 @status NVARCHAR(50) OUTPUT AS BEGIN ----your Stored procedure----- SET @status = 'Success'; END;

因此,只有在执行整个存储过程脚本活动或查找活动后才会显示成功,然后您可以执行下一个活动。

© www.soinside.com 2019 - 2024. All rights reserved.