【发布时间】:2013-11-26 20:43:29
【问题描述】:
我正在尝试清理一个巨大的遗留 T-SQL 存储过程。我们从 BizTalk 中调用它。 BizTalk 具有在出错时重试发送端口(例如每 5 分钟 3 次)的功能。
例如,存储过程检测到丢失的数据并执行以下操作:
if @CompanyID is null raiserror( '@CompanyID is missing', 18, 1 );
“Begin Catch”逻辑会处理某些错误(即将它们记录到错误表中),然后执行“Return 0”。我相信之前的程序员认为这会阻止 BizTalk 再次调用它。但现在我有一个踪迹,我可以证明 BizTalk 每隔 y 分钟就调用它 x 次重试(由 BizTalk SendPort 定义)。
我目前的想法是,如果@@Error 和@@ErrorMessage 不为null,BizTalk 仍然认为它有错误,并会重试。
关于如何彻底清除错误有什么想法吗?我希望做一个小的快速修复,没有时间进行重大重写。
【问题讨论】:
标签: sql-server-2008 stored-procedures error-handling biztalk biztalk-2010