本帖最后由 zky0901 于 2011-04-21 15:46:13 编辑

解决方案 »

  1.   

    update f_lyb set lpass=case when @lpass is null then lpass else @lpass  end
    where lid=@lid
      

  2.   


    update f_lyb 
    set lms=isnull(@lms,lms),
    ldate2=isnull(@ldate2,ldate2),
    lpass=isnull(@lpass,lpass)
    where lid=@lid参数为null 就不更新
      

  3.   

    update f_lyb set lpass=isnull(@lpass,lpass)
    where lid=isnull(@lid,lid)
      

  4.   

    当然有,使用参数默认值就行了
    比如
    create proc [dbo].[update_lyb]--更新全部
    (
      @lid int=0,
    ....
    这样,如果不指定该参数的话该参数就等于默认值,但是带默认值的参数要注意放在其它参数后