如一个表:Test
字段: A      B     C   flagState
       a1     b1    c1   使用
       a2     b2    c2   使用
       a3     b3    c3    暂停
我想把第一条数据锁定,在执行 select * from Test where flagState='使用' 时候,第一行数据不显示,当解锁后才会显示,该怎样锁定呢

解决方案 »

  1.   

    1 如何锁一个表的某一行A 连接中执行SET TRANSACTION ISOLATION LEVEL REPEATABLE READbegin transelect * from tablename with (rowlock) where id=3waitfor delay '00:00:05'commit tranB连接中如果执行update tablename set colname='10' where id=3 --则要等待5秒update tablename set colname='10' where id<>3 --可立即执行2 锁定数据库的一个表SELECT * FROM table WITH (HOLDLOCK) 
    注意: 锁定数据库的一个表的区别SELECT * FROM table WITH (HOLDLOCK) 
    其他事务可以读取表,但不能更新删除SELECT * FROM table WITH (TABLOCKX) 
    其他事务不能读取表,更新和删除