0

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

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

如何使用 c# 程序制作这个?希望能以最好的方式帮助我做到这一点。

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

谢谢 :)

4

1 回答 1

1

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

注意这是半伪代码示例

 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 为例。

于 2013-08-13T12:44:18.257 回答