update parts set oh_qty=oh_qty+@old_qty where partsno=@old_goods_no
    if @old_goods_no<>'' set @error_update=@error_update+@@rowcount-1
    if @@error<>0  set @error_code=@error_code+1對於@@error 還不是很清楚,這裡第二行運行後,會不會造成@@error 值的改變?

解决方案 »

  1.   

    update parts set oh_qty=oh_qty+@old_qty where partsno=@old_goods_no
    --这里需要
    if @@error <> or @@rowcount<> 1
      return @@error
    end if
        if @old_goods_no<>'' set @error_update=@error_update+@@rowcount-1
        if @@error<>0  set @error_code=@error_code+1
      

  2.   

    嗯,這樣我能理解。
    但是我是想問
    update parts set oh_qty=oh_qty+@old_qty where partsno=@old_goods_no
    set @a=@a+1 (即隨便執行一個賦值語句)
    if @@error<>0 then...
    if @@rowcount<>1 then..
    跟下面一段代碼
    update parts set oh_qty=oh_qty+@old_qty where partsno=@old_goods_no
    if @@error<>0 then...
    if @@rowcount<>1 then..它們的@@error 值,@@rowcount 值是不是一樣的?
    就是說變量賦值語句會不會引起@@error ,@@rowcount值的改變?
      

  3.   

    @@error,@@rowcount是一个全局变量,你自己想想看好了,自己测试一下不就ok了吗
      

  4.   

    只有Sql语句访问数据库的错误对@@Error有影响吧,赋值语句应该没有影响的