gpt4 book ai didi

sql-server - 这些代码片段是否相当于 ('set xact_abort on' 与 'try catch rollback' )?

转载 作者:行者123 更新时间:2023-12-03 03:01:06 25 4
gpt4 key购买 nike

我曾经在 SQL Server 的存储过程中使用此代码片段:

create procedure proc_name
--declare variables
as
set nocount on
begin transaction
begin try
--do something
commit transaction
end try begin catch
rollback transaction
;throw
end catch
go

但今天我知道了“set xact_abort on”语句。下面的代码与前面的代码等效吗?它们之间有什么区别吗?

create procedure proc_name
--declare variables
as
set nocount on
set xact_abort on
begin transaction
--do something
commit transaction
go

最佳答案

引用自MS docs

TRY…CATCH 构造捕获所有严重性高于 10 且不会关闭数据库连接的执行错误。

因此,try catch 并不能捕获所有可能的错误。除了 try catch 之外,您还可以使用 xact_abort on。

try/catch 为您提供了更大的灵 active ,即,当某些事情不满意时,您不仅限于回滚。

关于sql-server - 这些代码片段是否相当于 ('set xact_abort on' 与 'try catch rollback' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21030099/

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