将数据从sql server数据库传输到同一数据库的另一个副本

时间:2013-08-13 12:34:26

标签: c# sql-server

我有两个相同的sql server数据库(DB1和DB2)的副本。执行以下操作的最佳方法是什么:

更新DB2中某些表的数据与DB1相同(即:DB1是源,DB2是目标) 并将DB1中其他一些表的数据更新为与DB2相同(即:DB2是源,DB1是目标)

如何使用c#程序进行此操作?希望能帮助我做到最好的解决方案。

请记住,程序和两个副本之间没有任何关联,并且这些表在Identity列上有很多关系

谢谢:)

1 个答案:

答案 0 :(得分:1)

我的建议是设置链接服务器,然后创建使用MERGE SQL命令的存储过程。

请注意,这是半伪代码示例

 MERGE DB2 AS target
    USING DB1 AS source
    ON <Primary Keys>
    WHEN MATCHED THEN 
        UPDATE SET Key = source.Value
    WHEN NOT MATCHED THEN   
        INSERT (<Columns>)
        VALUES (source.values)
        OUTPUT deleted.*, $action, inserted.* INTO #MyTempTable;

然后,您可以创建SqlConnection/SqlCommand,然后调用存储过程。这段代码可以在windows服务或普通的.Net事件中终结主机,例如按钮点击,OnLoad为例。