gpt4 book ai didi

sql - tsql事务

转载 作者:行者123 更新时间:2023-12-02 09:47:46 25 4
gpt4 key购买 nike

为了将存储过程包装在事务中,我添加了以下内容:

CREATE PROCEDURE [dbo].[P_ORD_InsertTextField]
//PARAMS
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION

//STP BODY

COMMIT
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK

DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
SELECT @ErrMsg = ERROR_MESSAGE(),
@ErrSeverity = ERROR_SEVERITY()

RAISERROR(@ErrMsg, @ErrSeverity, 1)
END CATCH
END
GO

有没有更短的方法可以达到同样的效果?这是一个巨大的代码块,用于“仅”处理事务..

最佳答案

不,差不多就是这样了。

您可以将@ErrMsg处理隐藏在存储过程或UDF后面,并且不需要@ErrSeverity处理。通常是 16,这是“用户定义的错误”

请也在这里查看我的答案:Nested stored procedures containing TRY CATCH ROLLBACK pattern?

关于sql - tsql事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com