存储过程1我return @sms我要在存储过程2中用@sms怎么写啊并且要把@sms和别的字符串合在一起
2中我要怎么接收1中返回的值并且使用他?过程如下
CREATE PROCEDURE proc_one

AS
declare @times varchar(20)
declare @sms varchar(20)
select @times=(convert(varchar(12),getdate(),108) )  if @times between '22:00:00' and '23:00:59'
   begin
set @sms='你好'
return @sms
           end else
   begin
set @sms='我好'
return @sms
   end
GO------------------------CREATE PROCEDURE proc_twoAS
        declare @content varchar(20)
exec proc_time
       我要把@content和proc_one中返回的@sms叠加怎么写
GO

解决方案 »

  1.   

    第一个要改一下吧,如下CREATE PROCEDURE proc_one @sms varchar(20) OUTPUT AS 
    declare @times varchar(20) select @times=(convert(varchar(12),getdate(),108) ) if @times between '22:00:00' and '23:00:59' 
      begin 
    set @sms='你好' 
              end else 
      begin 
    set @sms='我好' 
    end 第二个这么写,如下,不过你的@content值从哪取呀,我这里设成了输入参数CREATE PROCEDURE proc_two @content varchar(20), @retStr varchar(50) outputAS 
    DECLARE @@TOTALCOST varchar(20)exec proc_one @@TOTALCOST OUTPUT
     set @retStr = @content+@@TOTALCOST
    GO 
    直接执行SQL语句的时候,如下DECLARE @@retValue varchar(20)
    EXECUTE proc_two 'hi',@@retValue OUTPUT
    select @@retValue
    输出结果:hi我好
      

  2.   

    太感谢了只是不太明白@@TOTALCOST是自己定义的吗还是Transact-SQL 里的。我没找到?
    我会仔细研究的呵呵。
      

  3.   

    @@两个就代表Transact-SQL 定义好的