如果SQL Server 2008上的链接服务器之间的连接失败

时间:2013-04-17 13:35:49

标签: sql sql-server-2008 tsql linked-server

我在2个不同的SQL Server实例上有2个数据库,这些实例不在同一个本地网络区域。

当我在数据库A中对表A进行更改时,我需要更新数据库B中的表B.

所以我决定链接这些服务器,但我的问题是服务器之间的连接是否丢失,我在数据库A上得到更新/插入/删除,如何在连接再次可用时如何在数据库B上应用这些更改?我可以获得任何自动生成的日志吗?

感谢您的帮助。

2 个答案:

答案 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;然后我插入否则我会更新 我已经创建了我在其中设置连接参数的存储过程