既然不要读脏数据, 那就设置为:
 SET TRANSACTION ISOLATION LEVEL READ COMMITTED        

解决方案 »

  1.   

    不过, 看你的目的, 应该是不想因为表被加锁而影响读取你只是想把所有不是脏数据的记录都读出来吧?那就用 WITH(READPAST) 选项跳过被锁定的记录吧(不过注意, 被锁定的, 不一定就是脏数据)
      

  2.   

    -- 示例, 创建测试环境(查询窗口A)USE tempdb
    GOCREATE TABLE dbo.tb(id int)
    INSERT dbo.tb SELECT 1
    UNION ALL SELECT 2
    GO-- 更新不释放锁
    BEGIN TRAN
    UPDATE dbo.tb SET id = 3 
    WHERE id = 1
      

  3.   

    -- 查询窗口B(读取没有被锁定的记录)USE tempdb
    GOSET TRANSACTION ISOLATION LEVEL READ COMMITTED
    SELECT * FROM dbo.tb WITH(READPAST)
      

  4.   

    to zjcxc(邹建) ( ) 信誉:673 
    谢谢,已给分