存储过程的参数能不能是可选参数?

解决方案 »

  1.   

    我的意思是一个存储过程中,例如有以下参数@id,@name,@password,@email,@qq我有时候只是想更新其中的@name,@password,有时想更新@email,@qq,或者其他的参数,而不是每次都全部更新。
      

  2.   

    @id int=0,@name varchar(50)='',@password varchar(50)='',@email varchar(50)='',@qq varchar(50)='',@docase int=0
    if @docase=0
    --全部更新if @docase=1
    --只更新@email,@qq
      

  3.   

    可以阿
    CREATE         PROCEDURE InsertCustom(
        @ParentSID                  VARCHAR(20) = null,
        @CIQID                      VARCHAR(50) = '000',
        @DrawbackRate DECIMAL = 0)
    as ...
    go
    这样就可以你调用时,不一定都给出参数的。没有给出的参数,SQL将使用定义的默认值。
      

  4.   

    看来是没有可选参数了~~
    to luckyprg(lucky)
    使用语句我也会,但是如果变量多,或者不可预料程序中到底要使用那几个变量,这种方法好像不行to  greenery(greenery) 
    使用默认值,但是如果是更新语句怎么办,每一行的值可能都不一样,没有给出的参数,SQL将使用定义的默认值,,本来是不更新该值,结果更新为默认值
      

  5.   

    oracle的存储过程没有可选参数