【发布时间】:2017-02-06 21:55:45
【问题描述】:
我创建了一个管道和两个链接服务来将数据从 SQL Server 的本地实例移动到 Azure Sql 实例。我遇到的问题是我们在本地有一个表“Table-1”,其中一个 Identity (1,1) 列缺少顺序 ID(例如,值是 1、2、3、4 , 6)。当管道运行时,它会尝试插入 ID 为 1、2、3、4、5 的行,这是一个大问题,因为 ID 6 是另一个表“Table-2”上的外键,现在它不存在,因此将数据移动到表 2 失败并出现 SQL 错误 547(插入语句与外键约束冲突...)。
在我看来,正确的做法是使该列不是身份,但这不是我现在的选择,因为创建记录的应用程序代码希望该列是自动生成的。
除了不使用数据工厂之外,还有其他方法吗?我希望看到它自动为带有 Identity 列的表打开和关闭 identity_insert,虽然我知道这会强制这些表一次处理一个,但该选项会很好,并且不会破坏我的关系。
编辑:根据 wBob 的建议,我还在此处添加了一个功能请求(如果您愿意对其进行投票):https://feedback.azure.com/forums/270578-data-factory/suggestions/17996950-add-support-for-maintaining-identity-column-values
【问题讨论】:
-
我想我可以为每个表编写一个脚本,将表数据作为管道定义的一部分,用于那些具有标识列的表...
标签: sql-server azure-sql-database azure-data-factory