0

在使用 Azure 数据工厂中的 azure 复制活动加载到目标表之前,我需要帮助从目标表中删除记录。我的条件是从雪花表中删除其中 snowflaketable.date 列等于管道触发时间日期的记录。

我尝试在 Pre-Copy 脚本中写下

从 "CONSOLIDATE"."SEM"."HEATMAP" 中删除 cast(createdate as date ) = cast(@pipeline.triggetime.scheduletime as date)

你能帮我正确的语法吗?

4

1 回答 1

0

您似乎使用了不正确的变量

没有变量@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)进行更具体的转换。

于 2022-01-17T07:40:37.767 回答