2010-05-12 67 views
2

我有一个客户端数据库的副本说'DBCopy'已经包含修改后的数据。客户端数据库(DBCopy)的副本附加到中央数据库(DBCentral)所在的SQL Server。然后我想更新DBCopy中已存在的任何 更改为DBCentral。 DBCopy和DBCentral都有相同的模式。我怎样才能以编程方式使用C#.NET来完成,也许只需点击按钮即可。你可以给我一个示例代码,如何做到这一点?我正在使用SQL Server 2005标准版和VS 2008 SP1。更新从一个数据库到另一个数据库在同一服务器的更改

在实际场景中,大约有7个客户端数据库都与中央数据库具有相同的模式。我将每个客户端数据库的副本附加到中央数据库驻留的中央服务器上,并尝试使用C#.NET逐个编程地将客户端数据库的每个副本中存在的更改更新到中央数据库。客户端和中央服务器实际上是分开存在于不同地方的机器。它们不相互关联。

我只需要更新并插入新数据。我不会为删除数据而烦恼。

感谢和问候 帕

回答

0

去看看Sync Framework。否则,请创建一些SSIS包并运行它们。

+0

非常感谢您的答复。另外我想提一下,有大约50个表格和可能相同数量的视图和SPS。所以这是一个巨大的数据。哪一个将是一个可行的解决方案。由于我对此非常陌生,你可以给我一些示例代码或几个使用Sync Framework和创建SSIS插件的参考吗? – 2010-05-12 04:05:21

0

你所描述的听起来很像Database Mirroring

+0

谢谢您也可以看看:) :) – 2010-05-12 04:30:05

0

如果这是一次性或不常见的同步,那么我会使用第三方工具,如Red-Gate的SQL Data Compare。如果这意味着正在进行同步,那么我会推荐复制或Synchronization Framework

+0

感谢您的回复。其实我是新手,我不明白你的意思是不常用的同步和正在进行的同步,这些术语对我来说是新的。这个想法是这样的:一旦我附加客户端数据库的副本,并执行更新到中央数据库,我会简单地分离或删除副本。客户端数据库的副本每月带到服务器一次或两次,并连接到中央数据库所在的服务器,然后从副本到中央数据库执行更新。 – 2010-05-12 04:23:15

+0

Red-Gate的SQL数据比较对我来说将是一个昂贵的解决方案。我仍然是一名学生,这是我的学术项目。 – 2010-05-12 04:51:38

+0

@Pavan Kumar - 通过不经常的和正在进行的,我指的是你多久必须进行同步。如果每两个月进行一次,而不是按计划进行,那么使用工具将会更简单。如果这是每个月都必须发生的事情,那么编写脚本会更好。复制将是最简单的解决方案,因为同步就是它设计的目的。之后,我会看看Sync Framework。 – Thomas 2010-05-12 14:19:02

0

我认为这是西隧ü希望-----

USE DB1 
UPDATE DB1.dbo.MyTable 
SET 
    Field1 = d2.Field1, 
    Field2 = d2.Field2, 
    Field3 = d2.Field3 
FROM DB2.dbo.MyTable d2 
WHERE d2.MyKey = MyTable.MyKey 
相关问题