gpt4 book ai didi

sql - 如何将一个查找事件的输出用于 ADF 中的另一查找事件?

转载 作者:行者123 更新时间:2023-12-03 06:17:48 25 4
gpt4 key购买 nike

我有两个 SQL 服务器,并且两个服务器都有相同的表,名称为“[TABLE-A]”。我需要做的是,我想在 [SERVER2].[TABLE-A] 中维护与 [SERVER1].[TABLE-A] 中相同的记录。每当插入或删除任何记录时 [SERVER1].[TABLE-A] 我需要在 [SERVER2].[TABLE-A] 中执行相同的操作。因此,我创建了两个名为“Lookup1”和“Lookup2”的查找事件。从 Lookup1 中,我从下面的查询中获取 [SERVER1].[TABLE-A] 中存在的所有唯一 ID。

SELECT DISTINCT Id from [SERVER1].[TABLE-A]

这给了我一个包含所有 70 个不同 ID 的列。

我的想法是在 Lookup2 中使用此 Id,并删除 Lookup1 输出中不存在的 Id。

DELETE FROM [SERVER2].[TABLE-A] WHERE Id NOT IN ('@{activity('Lookup1').output.value[0].Id}')

但我无法将这 70 个 Id 放入 ('@{activity('Lookup1').output.value[0].Id}') 中,因为我以这种方式指定,所以它只需要这 70 个 Id 中的 1 个值。如何将这 70 个 ID 放入我的 Lookup2 查询中?

最佳答案

查找事件输出将为数组类型。示例查找事件输出数据:

{
"value": [
{
"id": 1
},
{
"id": 3
},
{
"id": 4
}
]
}

表达式 @{activity('Lookup1').output.value[0].Id} 将仅给出第一个值。为了将查找事件中的所有值提供给 SQL 查询,需要对 Lookup1 数据进行一些更改

  • {"id":} 将从数据中删除,[] 将分别替换为 ()。这样,上面的数据就会变成(1,3,4)

  • 为此,采用字符串类型的变量 v1 并将该变量的值设置为 @{activity('Lookup1').output.value}enter image description here

  • 采用变量 v2(字符串类型),并在该变量中从 v1 中删除所有不需要的数据。该值的给出形式为 @{replace(replace(replace(replace(variables('v1'),'{"id":',''),'}',''),'[',' ('),']',')')}.

  • 然后查找 Activity2 并给出查询

select * from emp1 where id in @{variables('v2')}

enter image description here

这将从 emp1 中选择 lookup1 表中可用的行。删除sql命令也可以类似的写法。

关于sql - 如何将一个查找事件的输出用于 ADF 中的另一查找事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76078474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com