因为目前小弟要做个项目结算的功能,所以需要把sqlserver2000数据库锁一下,等操作完再解锁,有时只锁某个表,想在c#里调用sql语句来完成,但是自己不知怎样写,网上也没有搜到,请哪位高手指点一下.谢谢

解决方案 »

  1.   

    update   ...   set   ...   where   ...   with   (TABLOCK)
      

  2.   

    锁定表
    update ..with (tablock)...
      

  3.   

    UPDATE   表中可用的锁为:   
        
      FASTFIRSTROW   
      等同于   OPTION   (FAST   1)。   
        
      HOLDLOCK   
      等同于   SERIALIZABLE。   
        
      PAGLOCK   
      在通常采取单个共享表锁的地方采取共享页锁。   
        
      READCOMMITTED   
      指定用与运行在   READ   COMMITTED   隔离级别的事务相同的锁定语义执行扫描。   
        
      REPEATABLEREAD   
      指定用与运行在   REPEATABLE   READ   隔离级别的事务相同的锁定语义执行扫描。   
        
      ROWLOCK   
      指定在通常采取单个共享页或表锁的情形下采取共享行锁。   
        
      SERIALIZABLE   
      等同于   HOLDLOCK。通过将共享锁保持到事务完成,使之更具有约束性(而不要不管事务是否完成,都在不再需要所需的表或数据页时就立即释放共享锁)。用与运行在   SERIALIZABLE   隔离级别的事务相同的语义执行扫描。   
        
      TABLOCK   
      指定在表上采取的共享锁一直保持到语句结束。如果同时指定   HOLDLOCK,那么在事务结束之前该共享表锁将一直保持。   
        
      TABLOCKX   
      指定在表上采取的排它锁一直保持到语句结束或事务结束。   
        
      UPDLOCK   
      指定读取表时采取更新锁而不是共享锁,且将这些更新锁保持到语句结束或事务结束。   
        
      XLOCK   
      指定应采取排它锁,且保持到由语句所处理的全部数据上的事务结束。如果与   PAGLOCK   或   TABLOCK   一同指定,则排它锁适用于适当的粒度级别。