SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
select * from yourtable rowlock where id = 1

解决方案 »

  1.   

    建立一个触发器,当更新这行时,拒绝更新
    create trigger mytrigger
    on yourtable
    for update
    as 
    if update(column)
    rollback transaction
    end
      

  2.   

    SQL SERVER 有悲观锁,不能2个USE同时修改,如果一个修改,另一个就无法读取。
    SELECT * FROM TABLENAME WITH (ROWLOCK)需要先设定锁的隔离级别。
    SET TRANSACTION ISOLATION LEVEL REPEATABLE READ说明如下:
    有一个表的数据如下
    c1          c2                                                     
    ----------- ------------------------ 
    1           2003-01-08 12:00:00.000
    2           2003-01-08 12:00:00.000
    3           2003-01-08 12:00:00.000在SQL Query Analyzer中开两个窗口(相当于两个连接)
    1 窗口A中顺序执行SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
    begin tran
    select * from t3 where c1=1  --此时已经锁定了该行2 在窗口B中顺序执行select * from t3  -可以得到结果update t3 set c2='2003-1-8 12:00:00' where c1=1    --将会等待直到A释放行锁3 在窗口A中顺序执行commit tran     --释放行锁,B的更新将被提交