我有两个相同的sql server数据库(DB1和DB2)的副本。执行以下操作的最佳方法是什么:
更新DB2中某些表的数据与DB1相同(即:DB1是源,DB2是目标) 并将DB1中其他一些表的数据更新为与DB2相同(即:DB2是源,DB1是目标)
如何使用c#程序进行此操作?希望能帮助我做到最好的解决方案。
请记住,程序和两个副本之间没有任何关联,并且这些表在Identity列上有很多关系
谢谢:)
答案 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为例。