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

如何在Azure Data Factory的Copy data活动中通过变量传入Select查询语句

问题原因

你遇到的语法报错核心是动态表达式生成的SQL语句不符合SQL语法规范,绝大多数情况是Lookup活动返回值的取值逻辑错误,或者动态表达式中存在多余的包裹符号。

解决步骤

  • 第一步:确认Lookup活动的配置
    确保你的Lookup活动勾选了仅返回第一行选项,你的查询仅返回Id=1的一条结果,开启该选项后结果会输出到firstRow对象中。
  • 第二步:使用正确的动态表达式取值
    拷贝活动源的Query配置项直接填写以下表达式即可,不要额外加引号、括号等包裹符号:
    @activity('替换为你实际的Lookup活动名称').output.firstRow.source_query
    如果你没有开启「仅返回第一行」,Lookup返回的是结果数组,需要用以下表达式取值:
    @activity('替换为你实际的Lookup活动名称').output.value[0].source_query
  • 第三步:验证SQL内容正确性
    可以在Lookup活动之后、拷贝活动之前新增一个「设置变量」活动,将上述表达式赋值给一个字符串类型的变量,运行管道后查看该变量的输出值,确认和你预期的SQL语句SELECT Count(CustomerId) Source_Rows FROM [SalesLT].[Customer]完全一致,没有多余的转义字符、引号、括号或者不可见特殊字符。
  • 第四步:排查配置表中的SQL内容
    直接复制[SalesLT].[configuration]表中Id=1对应的source_query字段值,放到SQL Server客户端中运行,确认本身没有语法错误,也没有隐藏的换行、特殊字符。

报错示意图

报错示意图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:54:06