select * from sysobjects with (ROWLOCK)

解决方案 »

  1.   

    begin tran testselect * from MainMenu with (ROWLOCK) where MenuID=17 waitfor delay '00:00:30.000'commit tran test为什么我这样写锁不住呢,commit之前别的事务还是可以select到MenuID=17的这条记录
      

  2.   

    ROWLOCK
     在读取或修改数据时,使用行级锁。可以在适当的情况下获取和释放这些锁。SELECT 操作将对行采用 S 锁。 
     
    -----------------------------------------------------
    这个锁不并持续到事务结束. 而是在select结束后释放.
      

  3.   

    这样子已经实现了我的意图了,就是还没有详细测试,希望没有问题
    BEGIN TRANselect * from MainMenu with(UPDLOCK,READPAST) where MenuID = 17waitfor delay '00:00:30.000'commit TRAN
      

  4.   

    已经在另外一个帖子里面解决
    http://community.csdn.net/Expert/TopicView3.asp?id=5479160