什么是实现SQL事务的更好的地方
本文关键字:更好 事务 实现 SQL 什么 | 更新日期: 2023-09-27 17:53:04
什么是更好的地方实现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中,它们已经打包在一个事务中了)
如果您需要使用相同的事务执行多个调用,您可以将其拉到客户端,或者创建一个为您调用底层过程的过程。