批量复制更新&使用C#在不同数据库之间新插入的数据

时间:2011-01-09 14:50:19

标签: c# sql-server-2005

这是我的第一篇文章..我有2个SQL Server数据库位于不同的服务器上..

假设从源数据库SDB到数据库DDB的DDT(目标数据表)的源数据表的SDT

我正在使用C#从SDT批量复制到DDT ..

我的代码是这样的:

sqlcommand = "Delete * from DDT where locID = @LocIDParam" // @LocIDParam is the parameter for a specific location // 
then bulk copy "Select * from SDT where locID = @LocIDParam" // the steps are well known.. 

我只是不想寻找无用的细节..

但是,我的SDT有一个巨大的数据,因此它会导致批量复制整个表的流量很高

无论如何,只有批量复制SDT到DDT的唯一更新记录以及插入新的记录???

您认为使用SQL触发器更新和新插入的数据是这种情况的最佳选择吗? (触发器将主键值插入新的单个列表并更新,然后根据此删除和插入DDT)

PS。我不想使用SQL复制,因为它有很多问题。

提前谢谢

1 个答案:

答案 0 :(得分:0)

从我想你已经喜欢你的解决方案之日起。如果没有,这就是我们如何处理某种类似的情况。

在源表上,我们有一个列,显示是否必须将数据发送到目标。我们使用布尔值,但您也可以使用显示上次更新日期的日期时间字段。

然后我们的拉动过程确实如下:

  1. 将目标服务器上的所有标记数据拉出临时表
  2. 更新两个表中的记录
  3. 插入临时表中目标表中不存在的所有记录
  4. 删除临时表
  5. 如果您使用SQL 2008,则有一个我不知道的合并选项。这里有一个解释它的链接: SQL 208 MERGE command

    希望如果你还需要,这会对你有帮助。