gpt4 book ai didi

sql-server - 这里发生了什么? SQL Server - XACT_ABORT ON + @@ERROR 检查。 .

转载 作者:行者123 更新时间:2023-12-02 00:32:51 25 4
gpt4 key购买 nike

这种情况会怎样?

SET XACT_ABORT ON

BEGIN TRANSACTION

---DO SOMETHING HERE THAT CAUSES AN ERROR

COMMIT TRANSACTION

if @@error != 0
raiserror('SP failed. Step 7.', 20, -1) with log GO

我的猜测是因为 XACT_ABORTON COMMIT TRANSACTION 永远不会发生(因为整个事情都回滚并终止),并且最后一条语句也没有(检查 @@error 然后调用 raiseerror)。

最佳答案

正确。

SET XACT_ABORT 跳出批处理。您的 IF 属于同一批处理。

如果你想对错误进行一些处理,那么使用 BEGIN TRY 等

SET XACT_ABORT ON
BEGIN TRY
BEGIN TRANSACTION

---DO SOMETHING HERE THAT CAUSES AN ERROR

COMMIT TRANSACTION
END TRY
BEGIN CATCH
raiserror('SP failed. Step 7.', 20, -1) with log
END CATCH
GO

我也对严重性 20 很感兴趣,因为它会中断连接。通常您会使用 16,这是用户定义的错误。

关于sql-server - 这里发生了什么? SQL Server - XACT_ABORT ON + @@ERROR 检查。 .,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5969416/

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