如何将SQL Server中两个表及其关系迁移至Dataverse
解决Dataverse表间关系重建问题(SQL Server迁移场景)
以下是基于你现有工具(Office套件+Power Apps高级许可)的可行方案,无需第三方工具:
方法1:Dataverse门户手动创建关系(适合少量表)
- 先确认已导入Dataverse的两张表中,主表主键字段和子表外键字段的数据类型匹配、无无效值(比如子表外键不能存在主表没有的记录)
- 进入Power Apps Maker门户,打开目标环境的Dataverse表列表
- 选中主表(如原SQL中的父表),切换到「关系」标签页,点击「新建关系」
- 选择对应关系类型(一对多/多对一/多对多),关联到目标子表
- 匹配对应字段:主表的主键(如
CustomerID)对应子表的外键字段 - 配置级联规则、显示选项等高级设置后保存
方法2:Excel模板批量导入关系(适合多表场景)
- 在Maker门户的表列表中,点击「导出模板」,选择包含关系结构的Excel模板
- 从Access中导出原SQL的关系定义:打开Access数据库→「数据库工具」→「关系」→右键空白处选择「导出到Excel」
- 将Access导出的关系信息映射到Dataverse模板的对应列(注意对应表和字段的逻辑名称,而非显示名称)
- 填写完成后,将模板导入回Dataverse,系统会自动批量创建关系
方法3:Power Automate自动化创建(适合大量关系)
- 利用Power Apps高级许可包含的Power Automate功能,先从Access导出关系列表到Excel
- 创建Flow,以该Excel为数据源,循环调用「Dataverse 创建关系」动作
- 配置动作参数时,映射主表、子表的逻辑名称,以及对应的主键/外键字段
- 运行Flow完成批量关系创建
关键注意事项
- 确保Dataverse中字段数据类型与原SQL匹配:比如SQL的INT主键,Dataverse需设为「整数」或「唯一标识符」(若为GUID)
- 清理子表外键的无效值:若子表存在主表未包含的外键记录,需先删除或修正,否则关系创建失败
- 多对多关系需先在Dataverse创建中间关联表,再分别建立与两张主表的一对多关系
内容的提问来源于stack exchange,提问作者Gideon
相关产品推荐
相关产品推荐

