什么是实现SQL事务的更好的地方

本文关键字:更好 事务 实现 SQL 什么 | 更新日期: 2023-09-27 17:53:04

什么是更好的地方实现SQL事务?

  1. 在应用程序的业务逻辑内或
  2. 内存储过程?

在业务逻辑代码中打开SQL事务是一个不好的做法吗?

,当我们处理复杂的业务逻辑,如批处理?

请告诉我什么是最好的方法,为什么?

什么是实现SQL事务的更好的地方

我的意见首先是:在存储过程中。

在SP中非常简单的使用事务,例如(MS SQL 2008R2)

 CREATE PROCEDURE P_MyProcedure
 AS
 BEGIN
    BEGIN TRANSACTION
    BEGIN TRY 
    select 'Do someting here' 
    END TRY
    BEGIN CATCH
        IF @@TRANCOUNT > 0
        BEGIN
            ROLLBACK TRANSACTION;
        END
    END CATCH;
    IF @@TRANCOUNT > 0
        COMMIT TRANSACTION; 
END

然后可以安全地编写业务逻辑。如果你愿意,还可以在其他层次上为交易费心。

在我看来,这取决于事务是否应该包含多个调用。如果事务应该在对数据库的一次调用中完成,则可以选择将事务保留在过程中。(注意,当在ADO上运行一条语句时。在SQL Server中,它们已经打包在一个事务中了)

如果您需要使用相同的事务执行多个调用,您可以将其拉到客户端,或者创建一个为您调用底层过程的过程。