【发布时间】:2010-09-08 17:32:09
【问题描述】:
编辑:让我完全改写一下,因为我不确定是否存在像我最初描述的那样的 XML 方式。
又一次修改:这需要是一个可重复的过程,并且必须能够以可以在 C# 代码中调用的方式进行设置。
在数据库 A 中,我有一组表,由 PK 和 FK 关联。假设有一个父表,其中包含子表和孙表。
我想将一组行从数据库 A 复制到数据库 B,该数据库具有相同名称的表和字段。对于每个表,我想插入到数据库 B 中的同一个表中。但我不能被限制使用相同的主键。 复制例程必须为数据库 B 中的每一行创建新的 PK,并且必须将它们传播到子行。换句话说,我在数据之间保持相同的关系,但不是完全相同的 PK 和 FK。
你会如何解决这个问题?我愿意接受建议。 SSIS 没有被完全排除,但在我看来它不会做这件事。我也对 LINQ 中的解决方案持开放态度,或者使用类型化的数据集,或者使用一些 XML 的东西,或者任何可以在 SQL Server 2005 和/或 C# (.NET 3.5) 中工作的东西。最好的解决方案不需要 SSIS,也不需要编写大量代码。但我承认,这种“最佳”解决方案可能不存在。
(这个任务不是我自己做的,也不是限制条件;这是给我的。)
【问题讨论】:
-
我认为这是一次性操作,不能选择复制?
-
不,它需要是可重复的;从长远来看,我们将指定要复制的项目(例如,通过原始数据库中的 PK)。由于我们无法保证顺序,因此新数据库中的 PK 不需要完全相同。如果它是一个好的解决方案,复制并不是不可能的。
-
您是否保留(或能否保留)目标数据库其他字段中的原始 PK ID?
标签: sql sql-server sql-server-2005 .net-3.5