SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

时间:2014-07-07 22:35:29

标签: sql sql-server sql-server-2008

在此查询中:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
Select * from table1
Go
Select * from table2
Go

这是否意味着READ UNCOMMITTED仅适用于Select * from table1的{​​{1}}?

为什么这不起作用?

Go

declare @var varchar(20) set @var = 'fdsdsf' select 'var' go select @var 必须消除才能使其正常工作

2 个答案:

答案 0 :(得分:3)

GO是SSMS或SQLCMD使用的批处理分隔符。它不是SQL标准的一部分,不应对ISOLATION LEVEL产生影响。

根据MSDN,“一次只能设置一个隔离级别选项,并且在显式更改之前,它将保持为该连接设置。”因此,在您的情况下,READ UNCOMMITTED将适用于两个查询。

答案 1 :(得分:-1)

Go-用于执行,用于Signals the end of a batch of Transact-SQL statements to the SQL Server utilities.。没有交易或隔离级别。

Read Uncommited适用于两个查询,因为它适用于单个事务,直到事务打开。(它由sqlserver维护,所以不用担心)

阅读Uncommited: - It is is SQL Server's default transaction isolation level.

Why use a READ UNCOMMITTED isolation level?

Specifies that statements can read rows that have been modified by other transactions but not yet committed.