2010-11-25 70 views
2

我在SQL Server Management Studio 2005中执行了以下查询,但没有提交事务。在SQL Server 2005中获取未完成的事务数据

begin transaction tran1 
insert into errorlog (errorlogid,OCCURREDTIME,MESSAGE) values (10002,0,''); 

(数据未提交)。 同时,在另一个查询窗口,我执行下面的查询,

select * from errorlog; 

但它正在等待交易TRAN1完成(由于锁)。

所以我执行的查询使用NOLOCK选项(从另一个查询窗口)

select * from errorlog with (NOLOCK); 

但是,我得到了行插入,而不是由TRAN1 COMMITED。 请帮助我获取没有被选择查询中的活动事务插入的行。

感谢&问候,

Padmakumar

回答

1
select * from errorlog with (READPAST); 

"Table Hints" in MSDN

READPAST

指定数据库引擎不读取由其他事务锁定的行。

也就是说,它跳过锁(例如,由事务持有),但除此之外,读取提交的数据仅

+0

是否有可能与READPAST发出的选择查询,并没有任何共享locks.I认为,READPAST也问题共享锁同时执行查询。 – padmakumar 2010-11-25 07:44:49

相关问题