2014-07-07 56 views
-3

在此查询:SET事务隔离级别未提交读

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

这是否意味着READ UNCOMMITTED将要在Select * from table1监守的Go的唯一工作?

为什么这不起作用?

declare @var varchar(20) 

set @var = 'fdsdsf' 

select 'var' 
go 
select @var 

go必须在为了使该工作

回答

3

GO是通过SSMS或SQLCMD使用间歇分离器消除。它不是SQL标准的一部分,不应该对ISOLATION LEVEL产生影响。

根据MSDN的规定,“一次只能设置其中一个隔离级别选项,并且在该连接被明确更改之前,该选项仍保持设置状态。”因此,在你的情况下,READ UNCOMMITTED将适用于这两个查询。

+1

+1用于阅读精细手册 –

-1

Go-这是用于执行并用于Signals the end of a batch of Transact-SQL statements to the SQL Server utilities.。没有事务或隔离级别。

读未提交的是两个查询工作,因为它的单次交易,直到打开事务工作(它是由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.