从 ADF 自动触发的存储过程无法更新或插入表

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

我有一个如下的SP。当使用计划触发器从 ADF 触发此操作时,它不会根据条件插入数据。但是,当从 ADF 手动触发时,它会按预期工作。知道这里可能出了什么问题吗?

CREATE PROC [schema1].[sp1] AS
BEGIN
 

DECLARE @date_today                 DATE

 
select @date_today = getdate()
print @date_today
 

Truncate table T1

 
 
IF NOT EXISTS
(select month from T3
where condition1 <= @date_today and condition2 >=@date_today)
    BEGIN
     INSERT INTO T1
     VALUES ('0')
    END
 
    ELSE
    BEGIN
     INSERT INTO T1
     VALUES ('1')
    END
 
 
 
END

-尝试从 SSMS 手动执行此 SP,它按预期工作

-尝试从 ADF 活动手动执行,它有效

stored-procedures triggers azure-data-factory oracle-adf
1个回答
0
投票

当使用计划触发器从 ADF 触发此操作时,它不会根据条件插入数据。

我尝试重现该问题,但使用手动触发器和计划触发器都可以正常工作。

enter image description here

您可以使用以下查询检查触发器运行的预期输出是什么,并重新检查数据并解决问题:

    DECLARE @date_today DATE;
    SELECT @date_today = GETDATE();
    IF NOT EXISTS (SELECT Month FROM T3 WHERE Condition1 <= @date_today AND Condition2 >= @date_today)
    BEGIN
        select '0' as T1;
    END
    ELSE
    BEGIN
        select '1' as T1;
    END

请仔细检查

T3
表中的数据,以确保条件(
condition1
condition2
)设置正确,并且没有数据异常导致存储过程在计划触发器执行期间表现不同。

还要确保在按计划更改触发器之前和之后没有发生对表数据的操作。

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