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

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会有好处吗?字典会比全班更快吗?并且比具有插槽的课程快吗? 问题答案: 你为什么要把它当作字典?有什么好处?如果您以后要添加一些代码,会发生什么?您的代码会去哪儿? 类用于捆绑相关数据(通常是代码)。 字典用于存储键- 值关系,其中通常键都是同一类型,并且所

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

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

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

  • 从1.r.58开始, 支持出参, 之前的版本仅支持入参. 从实现方式上说, 是通过扩展自定义SQL的含义及上下文来实现 仅含义入参的存储过程 // 建表,删除老的存储过程. dao.create(Pet.class, true); dao.insert(Pet.create("wendal")); dao.execute(Sqls.create("DROP PRO