【发布时间】:2018-02-16 07:46:06
【问题描述】:
我有一个简单的存储过程来选择、格式化和复制 TimeCard 数据库中的记录到我们的 ERP 数据库。两者都是 SQL Server。
它作为计划作业在 SQL Server 代理上运行。代码是这样的
INSERT INTO linked_erpserver.db.SCHEMA.table01
SELECT *
FROM linked_timecardserver.db.SCHEMA.tablexx X
WHERE X.flag = 0
UPDATE linked_timecardserver.db.SCHEMA.tablexx
SET flag = 1
WHERE flag = 0
现在,假设如果有大量记录并且与链接服务器的连接失败,那将是灾难性的影响。
我该如何处理?我是否应该一一选择记录,插入,更新并提交该记录。
编辑:我们使用的是 SQL Server 2005
【问题讨论】:
-
嗨@rauf 您是否在交易前尝试过
BEGIN TRAN? -> mssqltips.com/sqlservertutorial/3305/… -
@AndyK 不确定这是否适用于链接的服务器。也许开始分布式事务?
-
@Rauf:此链接也可能有帮助:stackoverflow.com/questions/506602/… 此外,在尝试将其提交到您的 ERP 之前,发送到暂存表并验证暂存表是否正确会给您额外的信心。
标签: sql-server database stored-procedures commit sql-server-agent