如何通过链接服务器确保插入内容完整



我的服务器中有一个表。我正在连接到一个链接服务器,并通过openquery将数据从我的表插入到远程表中的表中。插入完成后,我想截断我的表(在我的服务器中)。我在做手术。插入之前,我正在检查链接服务器是否可用sys.sp_testlinkedserver。但是,如果链接的服务器在我插入时脱机或不可用,会发生什么。假设我的表中有100行,当第50行插入到远程表时,远程服务器脱机或出现问题。我如何构建它,使我知道我的所有记录都插入到远程表中,如果不是所有记录都被传输,我就不会截断我的"本地"表?(两者都是SQL Server 2008 r2)

基本上,您只需要一个单个insert语句,它将数据从一个服务器传输到另一个服务器。

你不需要"openquery"(你在做什么?你在循环中一个记录一个记录地写吗?这根本没有必要,甚至会非常非常慢)。

那么,您的单个insert语句就是一个事务。此事务要么作为一个整体完成,要么失败。如果失败,则可以捕获错误,并仅在插入完成时执行截断操作。

相关内容

最新更新