怎样让存储过程里的变量可以为空?
@userQQ varchar(12),
怎样让它可以为空

解决方案 »

  1.   

    select @userQQ = NULL

    set @userQQ  = NULL
      

  2.   

    create procedure dbo.csp_userRegister
    @userId varchar(16), --用户ID
    @userPwd varchar(32), --用户密码
    @userQuestion varchar(20), --提示问题
    @userAnswer varchar(20), --提示答案
    怎样可以让答案为空呢,上面的方法好像不行,这个是用户注册的一个存储过程
      

  3.   

    create procedure dbo.csp_userRegister
    @userId varchar(16), --用户ID
    @userPwd varchar(32), --用户密码
    @userQuestion varchar(20), --提示问题
    @userAnswer varchar(20) output --提示答案在存储过程中,set @userAnswer=null
      

  4.   

    为存储过程的参数设置默认值.
    create procedure dbo.csp_userRegister
    @userId varchar(16) = NULL, --用户ID
    @userPwd varchar(32) = NULL, --用户密码
    @userQuestion varchar(20) = NULL,          --提示问题
    @userAnswer varchar(20) = NULL, --提示答案

    create procedure dbo.csp_userRegister
    @userId varchar(16) = '', --用户ID
    @userPwd varchar(32) = '', --用户密码
    @userQuestion varchar(20) = '', --提示问题
    @userAnswer varchar(20) = '', --提示答案
      

  5.   

    给你举个例子吧!
    比如:create procedure mysp
              argu1 int =0,
              argu2 varchar(10)='',
              argu3 varchar(30)='' output
    as
       ...
    go下面的调用都合法
    EXEC mysp
    EXEC mysp @argu1=1
    EXEC mysp @argu2='ok'
    ...
      

  6.   

    create procedure dbo.csp_userRegister
    @userId varchar(16)=null,--用户ID
    @userPwd varchar(32)=null,--用户密码
    @userQuestion varchar(20),--提示问题
    @userAnswer varchar(20),--提示答案