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

标签 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 

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

最佳答案

Is it a good practice of writing return inside a Transaction?



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

Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1.



在存储过程中启动事务时,最佳做法是 COMMITROLLBACK在返回之前。此外,指定 SET XACT_ABORT ON 也是一个好习惯。在具有显式事务的过程中,以避免在超时后无意中使事务保持打开状态。

关于sql - 我可以在提交事务之前返回 SQL 过程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46278414/

相关文章:

sql - 如何从已计算的值中获取平均数

mysql - 从两个不同的表中获取公共(public)数据

sql - 交叉应用在 SQL Server 2005 中不起作用

sql - MS Excel - 现有连接字符串对应于哪个数据表

sql - 任何开源工具来比较 xml 和数据库行?

sql - 如何在 PostgreSQL SELECT 中限制行数

mysql - 需要使用嵌套选择从 Join 创建更新

c# - 如何使用 nhibernate 通过递归自连接 SQL 获得最佳性能

sql - NOLOCK 和 UNCOMMITTED 之间有什么区别

sql-server-2008 - 如何在旧的 ASP/VBScript 应用程序中使用 SQL Server 2008 存储过程的 Varchar(max) 输出?