Azure Logic App Get Rows(V2)无法读取含多点架构名的SQL Server表
解决Azure Logic App Get Rows(V2)处理多点点架构名的问题
问题根源
Azure Logic App的SQL Get Rows(V2)连接器默认仅支持解析架构名与表名之间单分隔点的情况,当架构名本身包含多个点时,连接器会错误地将这些点识别为架构/表的分隔符,导致无法匹配到目标表,抛出"The key didn't match any rows in the table"错误。
解决方案
方案1:改用Execute Query (V2)操作(推荐)
直接使用原生SQL语句绕过连接器的自动解析限制:
- 在Logic App中添加
Execute Query (V2)操作 - 在Query输入框中编写完整SQL语句:
SELECT * FROM [vehicle.small.fourwheel.car.kia].[Picanto] - 执行操作即可正常读取目标表数据,原生SQL不受架构名格式限制。
方案2:修改Logic App ARM模板(适用于必须使用Get Rows(V2)的场景)
通过手动修改ARM模板指定完整表名,绕过UI的解析错误:
- 导出当前Logic App的ARM模板
- 在模板中找到Get Rows(V2)操作的配置段,将
tableName字段的值直接设置为:"[vehicle.small.fourwheel.car.kia].[Picanto]" - 保存模板后重新部署Logic App,此时Get Rows(V2)会直接使用指定的完整表名进行查询。
方案3:在SQL Server中创建同义词
为复杂架构的表创建简单名称的同义词,让连接器可以正常识别:
- 在目标SQL Server中执行以下语句创建同义词:
CREATE SYNONYM dbo.PicantoKia FOR [vehicle.small.fourwheel.car.kia].[Picanto] - 在Logic App的Get Rows(V2)操作中,从表名下拉列表选择
dbo.PicantoKia即可正常读取数据。
内容的提问来源于stack exchange,提问作者Aritra Sarkar
相关产品推荐
相关产品推荐

