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

标签 sql azure azure-data-factory

我有两个 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/

相关文章:

powershell - 如何仅使用管道名称检查数据工厂管道运行的当前状态?

sql - Redshift : Getting rank of a row, 按条件过滤

azure - ubuntu 受信任存储中的 X.509 证书 - Powershell Microsoft graph

sql - 为什么此代码在 PostgreSQL 中失败以及如何修复它(解决方法)?是 Postgres SQL 引擎缺陷吗?

从 IISExpress 切换到完整 IIS 时出现 Azure "role discovery data is unavailable"错误

azure - 将第三方身份验证提供程序与 Azure Functions 结合使用

azure - 使用 Azure 数据工厂将文件内容从 Azure 存储复制到 Azure SQL Db

google-bigquery - 使用 Azure 数据工厂将数据从 Google Bigquery 移动到 Azure Data Lake Storage

c# - System.Data.dll 中发生类型为 'System.Data.SqlClient.SqlException' 的异常

sql - MySql,任何人都可以建议如何改进我的查询/索引吗?