我可以在提交事务之前返回 SQL 过程吗?

piy*_*ush 6 sql sql-server sql-server-2008

我可以在sql事务过程中使用return语句吗?

sql过程

ALTER PROCEDURE [dbo].[uspProcessStudentRecord] 
AS 
Begin Transaction
insert into dbo.Student(name,address) values('ABC','INDIA'); 
return; 
Commit Transaction 
Run Code Online (Sandbox Code Playgroud)

在事务中写入 return 是一个好习惯吗?

Dan*_*man 5

在事务中写入 return 是一个好习惯吗?

不会。事实上,您会收到此 SQL Server 错误,并且事务将保持未提交状态:

EXECUTE 后的事务计数表明 BEGIN 和 COMMIT 语句的数量不匹配。先前计数 = 0,当前计数 = 1。

当事务在存储过程中启动时,最佳实践是在返回之前COMMIT或之前。ROLLBACK此外,最好SET XACT_ABORT ON在过程中指定显式事务,以避免在超时后无意中使事务保持打开状态。