我有同一个 sql server 数据库(DB1 和 DB2)的两个副本。执行以下操作的最佳方法是什么:
更新DB2中一些表的数据与DB1相同(即:DB1为源,DB2为目的),更新DB1中其他一些表的数据与DB2相同(即:DB2为源) DB1 是目的地)
如何使用 c# 程序制作这个?希望能以最好的方式帮助我做到这一点。
请记住,程序和两个副本之间没有任何联系,并且表在身份列上有很多关系
谢谢 :)
我有同一个 sql server 数据库(DB1 和 DB2)的两个副本。执行以下操作的最佳方法是什么:
更新DB2中一些表的数据与DB1相同(即:DB1为源,DB2为目的),更新DB1中其他一些表的数据与DB2相同(即:DB2为源) DB1 是目的地)
如何使用 c# 程序制作这个?希望能以最好的方式帮助我做到这一点。
请记住,程序和两个副本之间没有任何联系,并且表在身份列上有很多关系
谢谢 :)
我的建议是设置一个链接服务器,然后创建使用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 为例。