我可以在sql事务过程中使用return语句吗?
Sql程序
ALTER PROCEDURE [dbo].[uspProcessStudentRecord]
AS
Begin Transaction
insert into dbo.Student(name,address) values('ABC','INDIA');
return;
Commit Transaction
在交易中写回报是一种好习惯吗?
答案 0 :(得分:2)
在交易中写回报是一种好习惯吗?
没有。实际上,您将收到此SQL Server错误,并且该事务将保持未提交状态:
EXECUTE之后的事务计数表示不匹配的数量 BEGIN和COMMIT语句。先前的计数= 0,当前计数= 1。
在存储过程中启动事务时,最佳做法是在返回之前COMMIT
或ROLLBACK
。此外,最好在procs中使用显式事务指定SET XACT_ABORT ON
,以避免在超时后无意中使事务处于打开状态。
答案 1 :(得分:1)
回滚事务将撤消它。 如果你没有先提交它,它将无效。 但是,除非你打算使用try catch或其他声明,否则我在你的陈述中没有看到你正在做的事情。
答案 2 :(得分:0)
如果您确实希望能够提交即使事务被回滚(并且我能想到的唯一可行原因是用于记录目的),还有几个选项可供您使用:
但请首先重新考虑这是否是您真正需要做的事情!