我在2个不同的SQL Server实例上有2个数据库,这些实例不在同一个本地网络区域。
当我在数据库A中对表A进行更改时,我需要更新数据库B中的表B.
所以我决定链接这些服务器,但我的问题是服务器之间的连接是否丢失,我在数据库A上得到更新/插入/删除,如何在连接再次可用时如何在数据库B上应用这些更改?我可以获得任何自动生成的日志吗?
感谢您的帮助。
答案 0 :(得分:2)
您应该将更新拆分为两部分(第一部分为第一部分,第二部分为第二部分),并在单一事务中执行每部分。如果第二个事务失败,请将更新参数插入某个失败更新表中。为每小时(或每天)计划此表以尝试执行UPDATE,并且onsucceed从更新失败的表中删除更新记录。
<强>已更新强>
BEGIN TRANSACTION
BEGIN TRY
--UPDATE
COMMIT TRANSACTION
END TRY
BEGIN CATCH
--INSERT INTO UpdateFail TABLE
ROLLBACK TRANSACTION
END CATCH
答案 1 :(得分:0)
这被称为脱机应用程序...最近我已经完成了这样的应用程序,如果没有连接到anohter数据库,它将脱机运行意味着它将保存在本地数据库上,稍后当连接回来时我使用openrowset转移另一方面的数据,表格结构在两侧都是相同的
我正在检查那行是否存在于其他地方然后&amp;然后我插入否则我会更新 我已经创建了我在其中设置连接参数的存储过程