A中调用B
execute b 变量1,变量2

解决方案 »

  1.   

    你可能要用到在参数中添加output来指定一个参数是在存储过程中传出的.否则参数值不会由存储过程中传出.比如如下是在存储过程的参数中声明了一个可以把值传出的参数:@fMessage varchar(100) output这样在使用的时候,可以使用output来接收这个参数的值了.
      

  2.   

    输出参数那个存储过程写成function不就好做了嘛!
      

  3.   

    大家好   问题还是没搞定   我的存储过程A如下:
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GOALTER     PROCEDURE ssEmpAdd 
    @empid int =null output,
    @empcode varchar(20)=null,
    @loginid varchar(16),
    @name varchar(20),
    @email varchar(50)=null,
    @officetel varchar(50)=null,
    @mobile varchar(20)=null,
    @officefax varchar(20)=null,
    @basnote text=null,
    @sex bit,
    @branchid smallint,
    @dep1 smallint,
    @dep2 smallint=null,
    @dep3 smallint=null,
    @pos1 varchar(20)=null,
    @pos2 varchar(20)=null,
    @pos3 varchar(20)=null,
    @eloginid varchar(16),
    @ename varchar(20),
    @ip varchar(50),
    @allowlogin bit=null,
    @htel1 varchar(20)=null,
    @bjdepid int=null,
    @branchdep varchar(50)=null,
    @stationid smallint=null,
    @techid smallint=null,
    @empstatus smallint=1

    AS
    insert into  mrbaseinf(empcode,loginid,name,email,officetel,mobile,officefax,basnote,sex,branchid,pwd,allowlogin,htel1,bjdepid,branchdep,stationid,techid,empstatus) 
    values(@empcode,@loginid,@name,@email,@officetel,@mobile,@officefax,@basnote,@sex,@branchid,
    'D4-1D-8C-D9-8F-00-B2-04-E9-80-09-98-EC-F8-42-7E',@allowlogin,@htel1,@bjdepid,@branchdep,@stationid,@techid,@empstatus)

    set @empid=@@identity
    insert into mrposition(empid,sortid,depid,positionid) values(@empid,1,@dep1,@pos1)
    insert into mrposition(empid,sortid,depid,positionid) values(@empid,2,@dep2,@pos2)
    insert into mrposition(empid,sortid,depid,positionid) values(@empid,3,@dep3,@pos3)
    exec ssActLogAdd @ename,'添加员工','员工表',@name,@ip,@eloginid ---插入欢迎的提醒语名句
    insert into ssRemindinf(empid,content)  
    values(@empid,'欢迎你第一次使用iloa.net,希望iloa.net能成为你日常办公中的好帮手!')
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO我要传递给B的变量是@empidB如下:SET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GOALTER          PROCEDURE ssEmpAdduser 
    @id varchar(20)=null,
    @woauserid varchar(50)=null,
    @userid varchar(50)=null,
    @username varchar(50)=null,
    @comid varchar(20)=null,
    @comname varchar(100)=null,
    @depid bigint=null,
    @depname varchar(50)=null,
    @dutyid bigint=null,
    @dutyname varchar(50)=null,
    @editstate int=null,
    @syncmess varchar(200)=null,
    @standone varchar(50)=null,
    @standtwo varchar(50)=null,
    @standthree varchar(50)=null,
    @re varchar(200)=null,
    @synctime varchar(20)=null,
    @logid varchar(50)=null,
    @useridid bigint=null output
    AS
    declare @userdd bigint
    execute ssEmpAdd @empid=@useridid
    insert into woauser(id,woauserid,userid,username,comid,comname,depid,depname,dutyid,dutyname,editstate,syncmess,standone,standtwo,standthree,re,synctime,useridid)
            values(@id,@woauserid,@userid,@username,@comid,@comname,@depid,@depname,@dutyid,@dutyname,@editstate,@syncmess,@standone,@standtwo,@standthree,@re,@synctime,@useridid)GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO请大家帮帮忙