我正在尝试更新控制应用程序的表(应用程序执行一些选择语句)。我想更新事务中的表,并将隔离级别设置为未提交读取,因此,如果应用程序未按预期工作,我可以回滚事务。
但是以下代码不起作用:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
go
begin transaction
go
update [DB].[dbo].[Table]
set ID = ID - 281
where ID > 2
当我打开另一个查询窗口时,我无法查询该表...我想,通过这样的事务级别,我将能够查询该表而无需回滚/提交事务。
最佳答案
正如您想象的那样,隔离级别以另一种方式工作。
你只能读取未提交的数据,但在你提交之前,其他人仍然看不到你在事务中做了什么。
如果您想在选择中查看此事务中未提交的数据,您需要设置
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
选择此选项
关于sql - SQL Server 中的事务隔离级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47829423/