declare @seq int 
select top 1 @seq=wpseq from wpemp 
where wpempno=?y1 and wprvd=?y5 order by wpseq desc 
if @seq is null set @seq = 0
if exists( select wpseq from wpemp where wpempno=?y1 and wprvd=?y5 and wppono=?po and wpgxh=?y7 )
update wpemp set wpqty=wpqty+?y9 where wpempno=?y1 and wprvd=?y5
else 
insert into wpemp(wpempno,wprvd,wpseq,wpqty)values(?y1,?y5,@seq+1,?y9)以上SQL语句在被一个程序调用时运行正确,但多个程序同时调用时报错!
请指教,多谢!SQL

解决方案 »

  1.   

    谢谢 OrchidCat 
    在程序界面显示更新错误
      

  2.   

    谢谢  發糞塗牆
    谢谢  最爱午夜
    WPEMP这个表就是一个普通表,没有建立索引、关键字、触发器等等之类的
    但是使用上面的语句同时执行时出错,不知道如何去修正,还请大侠多多指教!
      

  3.   

    大概的情况是这样
    需要向表WPEMP添加记录,判断关键字,如果存在就累加数量,如果不存在就新增一个编号
    表WPEMP
    字段   RECNO   STEP1    STEP2   QTY
          1       '001'     'A'     5
          2       '002'     'A'     10
          3       '001'     'B'     5
    如果需要添加  STEP1='001',STEP2='A',QTY=5的记录,结果如下:
           1       '001'     'A'     5+5=10  累加
          2       '002'     'A'     10
          3       '001'     'B'     5
    如果需要添加  STEP1='002',STEP2='C',QTY=5的记录,结果如下:
           1       '001'     'A'     5
          2       '002'     'A'     10
          3       '001'     'B'     5
          4       '002'     'C'     5  新增请教如何实现如上功能,多谢!

       
      

  4.   

    建议在以下脚本上添加一个事务控制select top 1 @seq=wpseq from wpemp 
    where wpempno=?y1 and wprvd=?y5 order by wpseq desc 
    if @seq is null set @seq = 0
    if exists( select wpseq from wpemp where wpempno=?y1 and wprvd=?y5 and wppono=?po and wpgxh=?y7 )
    update wpemp set wpqty=wpqty+?y9 where wpempno=?y1 and wprvd=?y5
    else 
    insert into wpemp(wpempno,wprvd,wpseq,wpqty)values(?y1,?y5,@seq+1,?y9)
      

  5.   

    多谢  x_wy46 
    我是菜鸟,还请详述!