在使用 Azure 数据工厂中的 azure 复制活动加载到目标表之前,我需要帮助从目标表中删除记录。我的条件是从雪花表中删除其中 snowflaketable.date 列等于管道触发时间日期的记录。
我尝试在 Pre-Copy 脚本中写下
从 "CONSOLIDATE"."SEM"."HEATMAP" 中删除 cast(createdate as date ) = cast(@pipeline.triggetime.scheduletime as date)
你能帮我正确的语法吗?
在使用 Azure 数据工厂中的 azure 复制活动加载到目标表之前,我需要帮助从目标表中删除记录。我的条件是从雪花表中删除其中 snowflaketable.date 列等于管道触发时间日期的记录。
我尝试在 Pre-Copy 脚本中写下
从 "CONSOLIDATE"."SEM"."HEATMAP" 中删除 cast(createdate as date ) = cast(@pipeline.triggetime.scheduletime as date)
你能帮我正确的语法吗?
您似乎使用了不正确的变量
没有变量
@pipeline.triggetime.scheduletime
pipeline().TriggerTime
是触发此管道的实际时间,而不是触发预定时间!
例子: 2022-01-17T05:44:31.7534445Z
如果你想使用预定的时间,我不这么认为,你实际上必须使用这个@trigger().scheduledTime
变量。
参考:计划触发范围
首先,将当前触发时间放入一个变量中
@substring(pipeline().TriggerTime,0,10)
Pre-copy 脚本中的查询如下所示:
declare @myvariable nvarchar(max) = @{variables('m')}
delete from POCtest where cast(ExecutedDate AS Date) = cast(@myvariable as date)
结果
根据您使用的表架构和数据类型,您可以参考CAST 和 CONVERT (Transact-SQL)进行更具体的转换。