我在SQL Server Management studio 2005中执行了以下查询,但我没有提交事务。
begin transaction tran1
insert into errorlog (errorlogid,OCCURREDTIME,MESSAGE) values (10002,0,'');
(未提交数据)。 同时,在另一个查询窗口中,我正在执行以下查询,
select * from errorlog;
但它正在等待事务tran1完成(由于锁定)。
所以我用nolock选项(来自另一个查询窗口)执行查询
select * from errorlog with (NOLOCK);
但是,我正在插入行,而不是由tran1提交。 请帮助我获取选择查询中未被活动事务插入的行。
谢谢&的问候,
Padmakumar
答案 0 :(得分:1)
select * from errorlog with (READPAST);
READPAST
指定数据库引擎不读取其他事务锁定的行。
也就是说,它会跳过锁(例如,由事务持有),但只能读取已提交的数据