如何按条件将SQL DB中的表复制到Azure SQL DB
从源SQL数据库到Azure SQL数据库的条件表复制实现方案
你可以通过两种常用方案实现全部需求,操作步骤如下:
方案一:使用Azure数据工厂(ADF)实现(适合定时同步场景)
- 第一步:配置两端连接
在ADF中分别创建源SQL数据库、目标Azure SQL数据库的链接服务,连通性测试通过后新建复制活动。 - 第二步:预处理列名,自动移除空格
在复制活动的源配置页,选择查询作为源数据使用方式,输入预处理SQL,提前把列名中的空格删除并筛选需要同步的列,示例代码如下:SELECT -- 所有带空格的列都重命名为无空格格式,不需要同步的列直接不写在SELECT列表中 [Employee Name] AS EmployeeName, [Depart ment] AS Department, [Join Date] AS JoinDate, 需要保留的其他列名 FROM 源表名称 WHERE 可选行过滤条件 - 第三步:配置Sink端自动建表与列映射
进入Sink配置页,选择目标Azure SQL数据库链接服务,勾选自动创建表选项;切换到映射页,系统会自动基于你预处理的查询结果完成列映射,你可以手动删除不需要的列,调整自定义映射关系。 - 第四步:执行验证
触发复制活动运行,完成后到Azure SQL数据库中核验:表已自动创建、列名无空格、仅包含指定同步的列、数据准确。
方案二:使用SSMS导入导出向导实现(适合单次同步场景)
如果你只需要做一次同步,无需定时任务,可以直接用SSMS完成:
- 连接源SQL数据库,右键点击数据库名称,选择
任务 > 导出数据- 目标选择
Azure SQL数据库,输入Azure SQL数据库的连接信息后下一步- 数据传输方式选择
编写查询以指定要传输的数据,输入和方案一相同的预处理SQL,筛选列并处理列名空格- 在配置目标表步骤,点击
编辑映射,勾选创建目标表,确认列映射关系正确后执行即可。
内容的提问来源于stack exchange,提问作者Robin
相关产品推荐
相关产品推荐

