如何在For Each循环复制活动中用JSON保留SQL Server数据类型
批量实现For Each循环中复制活动的动态架构导入
步骤1:获取待同步表列表
添加Lookup活动,查询SQL Server系统视图获取目标20张表的名称,示例SQL:SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_NAME IN ('表1','表2',...,'表20')将该Lookup的输出作为For Each循环的迭代源,循环变量设为
@item().TABLE_NAME。步骤2:循环内获取表结构
在For Each循环中添加第二个Lookup活动,针对当前迭代的表查询首行数据,让ADF自动识别列结构与数据类型,示例SQL:SELECT TOP 1 * FROM [dbo].[@{item().TABLE_NAME}]若目标表可能为空,可改用系统视图查询列元数据:
SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '@{item().TABLE_NAME}' AND TABLE_SCHEMA = 'dbo'步骤3:动态配置复制活动
在循环内的复制活动中:- 源数据集:将表名设为
@{item().TABLE_NAME} - 源架构:选择「从活动输出导入」,关联步骤2的Lookup活动,自动加载表结构
- 目标数据集:配置为JSON格式存储,文件路径设为动态值(如
@{item().TABLE_NAME}.json) - 目标架构:选择「与源相同」,确保保留SQL Server原数据类型
- 复制行为:开启「保留源数据类型」选项(若存在),强化类型一致性
- 源数据集:将表名设为
内容的提问来源于stack exchange,提问作者Moody_girl
相关产品推荐
相关产品推荐

