You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

当通过ADF定时触发器触发该存储过程时,无法按条件插入数据,但手动从ADF触发时却能正常工作。已尝试以下操作:

  • 在SSMS中手动执行该存储过程,运行正常
  • 在ADF中手动触发该活动,运行正常

请问可能是什么原因导致的?

可能的原因分析
  • 时区不匹配:ADF定时触发器的时区与数据库服务器时区不一致。存储过程中getdate()获取的是数据库服务器本地时间,而定时触发器若设置为其他时区(比如UTC),可能导致执行时的数据库时间落在与手动触发完全不同的时间区间,使得T3表的条件判断结果和预期不符。
  • T3表数据的时间性变动:定时触发器触发的时间段内,T3表中condition1和condition2对应的记录与手动触发时的状态不同。比如手动触发是工作日白天,T3存在符合条件的月度记录;但定时触发在凌晨非工作日,此时T3没有对应区间的记录,导致插入结果和预期不一致,并非存储过程逻辑失效。
  • ADF定时触发器的执行时间偏差:定时触发器可能因系统负载、调度延迟等原因,实际触发时间与设置的计划时间有偏差,导致getdate()获取的时间不在预期的判断范围内,进而影响插入逻辑的执行结果。

内容的提问来源于stack exchange,提问作者user23137473

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 19:39:59