当前位置: 首页 > 知识库问答 >
问题:

NServiceBus处理程序和存储过程调用。我应该使用SET XACT_ABORT ON还是尝试CATCH?

齐英韶
2023-03-14

如开始时一样

开始尝试

开始事务处理

-- Batch of inserts and updates that I want to keep transactional
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;

SELECT 
    @ErrorMessage = ERROR_MESSAGE(),
    @ErrorSeverity = ERROR_SEVERITY(),
    @ErrorState = ERROR_STATE();


RAISERROR (@ErrorMessage, 
           @ErrorSeverity, 
           @ErrorState
           );

共有1个答案

谢夜洛
2023-03-14

通常,无论使用ORM还是ADO.NET,都应始终将过程调用包装在事务中。Wht ADO.NET您可以执行以下操作:

var ts = myConnection.BeginTransaction();

然后调用try-catch块内的过程。

进一步取决于你的逻辑。如果过程可能因为某些逻辑而失败,则需要有一个返回代码,并基于此引发异常。如果过程由于SQL异常而失败,则try-catch块将处理它。

 类似资料:
  • 我正在编写一个Spring批处理应用程序: null

  • 问题内容: 我有一个只包含字段而没有方法的类,如下所示: 这可以很容易地翻译成字典。该类对于将来的添加更加灵活,使用可以更快。那么使用dict会有好处吗?字典会比全班更快吗?并且比具有插槽的课程快吗? 问题答案: 你为什么要把它当作字典?有什么好处?如果您以后要添加一些代码,会发生什么?您的代码会去哪儿? 类用于捆绑相关数据(通常是代码)。 字典用于存储键- 值关系,其中通常键都是同一类型,并且所

  • 我正在使用带有Sybase ASE数据库的powerbuilder。我在从应用程序执行更新时调用存储过程,但在存储过程中出现错误。我想在存储过程中放置一些打印语句以检查错误是什么。如何查看此打印语句的输出?如何记录存储过程? 提前谢谢Sharmistha

  • 问题内容: 我们正处于一个新项目的开始,我们真的想知道是否应该在MySQL中使用存储过程。 我们将仅使用存储过程来插入和更新业务模型实体。有几个表代表一个模型实体,我们将在那些存储过程的插入/更新中对其进行抽象。 另一方面,我们可以从Model层调用插入和更新,但是不能在MySQL中,而是在PHP中。 根据您的经验, 哪个是最佳选择? 两种方法的优点和缺点。就高性能而言,哪个是最快的? PS:这是

  • 问题内容: 我试图在postgres 9.3上使用sql调用函数内的函数。 这个问题与我的另一篇文章有关。 我写了下面的函数。到目前为止,我还没有合并任何类型的save-output(COPY)语句,因此我试图通过创建嵌套函数print-out函数来解决此问题。 以上功能有效。 尝试创建嵌套函数。 调用嵌套函数。 输出 上面给出了这个。但是,当在print_out()中将arg1,arg2替换为’

  • 我使用JDBC这样调用这个过程: 它向我抛出一个错误,通知调用格式错误。 但是如果我像这样直接在IDE中运行调用: