你锁定该表,不让他人操作。
sql语句:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE   
SET LOCK_TIMEOUT 18000        
BEGIN TRANSACTION              
SELECT * FROM temp_r1 WITH  (TABLOCKX)    
commit transaction    结束

解决方案 »

  1.   

    在次表中加一个锁定位token字段(0,1),然后当一次操作开始进行的时候,把此位符锁定值(1),别人读到是1就放弃操作,或者进入等待状态,等本次操作完成,再恢复0。
      

  2.   

    select null form table for update nowait
      

  3.   

    我在以前的相关贴子看到这个答案:
    用两个TQuery控件,一个用于锁定记录,另一个用于使锁定的记录可修改.如:第一个query的Sql为:Select * from 表 where 条件 for update nowait, 第二个query的Sql为:Select * from 表 where 条件. 这样,即锁定了记录,又
    允许设RequestLive 属性为true,用第二个Query控件进行修改. 
    但会报错:"for update 子句只能用于declare cursor“,
    哪位能详细点到底怎么办?