gpt4 book ai didi

tsql - 如何取消/重置 SQL Server 的事务隔离级别?

转载 作者:行者123 更新时间:2023-12-04 00:09:16 25 4
gpt4 key购买 nike

也许我误解了事务或 SQL Server 正在做什么,但请考虑以下 T-SQL:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
GO

BEGIN TRANSACTION

-- DO SOME READS AND OTHER THINGS

COMMIT

-- OK, WHAT HAPPENS TO THE ISOLATION LEVEL AFTER THIS?

也许这无关紧要,但我喜欢那种温暖而模糊的感觉,即一旦我做完我正在做的事情,我就会离开事物的原样。无论之前的状态如何,是否可以将隔离级别重置回原始状态?

最佳答案

如果您的代码在存储过程中执行,则更改仅在存储过程的范围内适用 - 当存储过程返回时,连接的隔离级别将自动恢复到以前的级别:

create procedure dbo.IsoTest
as
set transaction isolation level serializable
begin transaction

select transaction_isolation_level FROM sys.dm_exec_sessions where session_id = @@SPID

select object_id from sys.objects

commit
go
select transaction_isolation_level FROM sys.dm_exec_sessions where session_id = @@SPID
exec dbo.IsoTest
select transaction_isolation_level FROM sys.dm_exec_sessions where session_id = @@SPID

(忽略来自 sys.objects 的结果集,输出 2、4 和 2 作为隔离级别)。

关于tsql - 如何取消/重置 SQL Server 的事务隔离级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4630689/

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