我有两个数据库,我想将一些历史数据从事实表移动到另一个数据库,目标表与源表完全相同,包括所有约束。
我使用SSIS
包传输数据,如下所示:
然后使用执行SQL任务
将其加载到最终表但我得到以下错误
错误:违反PRIMARY KEY约束 ' PK__Financia__362B520524BEA57A&#39 ;.无法插入重复键 对象' Fact.FinancialTransactions'。重复的键值是 (100001,2010012,2010年12月31日12:00 AM,65,88)。
如何解决此问题?我想将约束保留在目标表中。
答案 0 :(得分:0)
您可能希望再添加一个执行SQL任务,该任务会在一段时间内禁用约束。但问题是如果禁用主键,则无法对表执行任何操作,因此也可以选择删除,但重新创建再次需要时间。所以最好的选择是修复错误或通过下面的
重建你的索引ALTER TABLE t1 REBUILD WITH(IGNORE_DUP_KEY = ON)
这将允许忽略重复项。更多信息在这里。Can I set ignore_dup_key on for a primary key?