我在某个表里面写一个触发器、
Begin tran
SELECT * FROM table WITH (HOLDLOCK)
commit tran可以达到这个效果么?当我在对表进行增删改操作的时候,--其他事务可以读取表,但不能更新删除

解决方案 »

  1.   


    LZ这个貌似,不用做事务或触发器,只要隔离级别做好就行。 
    参考http://msdn.microsoft.com/zh-cn/library/ms189122.aspx
      

  2.   


    如果LZ要每次增删改的时候,都锁表的话,可以用隔离级别为 序列化。用查询提示 HOLDLOCK的方式,容易造成意外的锁定。
      

  3.   


    当你的操作(增删改查)都需要基于实时有效的情况下,加锁就显的很必要了。 
    此时如果不能改变隔离级别的话
    就需要使用到锁了。通常,我们可以不用hint的方式加锁。存储引擎会搞定锁升级等处理的。
      

  4.   

    已提交读 这也是默认的设置-------请问,怎么可以看到这个默认设置呢?
    你的意思是不是不用进行事物处理?SQL SERVER自带的设置既可处理这些?