那你在A中讓它有參數 output就OK了吧

解决方案 »

  1.   

    要看怎么返回的return返回值取法:
    declare @i int
    exec @i=a 参数output返回值取法:
    declare @p ...
    exec a 参数...,@OutPara=@p output,...结果集需要临时表来取得
      

  2.   

    CREATE PROC test
    @a INT OUTPUT
    AS
    SET @a = 5
    GODECLARE @return INT,@a INT
    EXECUTE test @a OUTPUT
    set @return = @a
    select @return
      

  3.   

    ping3000谢谢你的解答,但我的意思是能不能用一条sql语言得到存储过程返回的值因为我所写的select语句是要传参数给存储过程A再返回值用来得到select语句中的一个字段也就是EXECUTE test @a OUTPUT集成到一条select语句中
      

  4.   

    declare @return int
    exec @return=proc_a a output
    select @return
      

  5.   

    是否可以把
    exec @return=proc_a a output
    select @return
    集成到一条sql语句??因为我所想要的结果是
    select 字段1,字段2,exec a 字段1 from table这样的形式?
    但exec a 字段1放到select语句里就报错,请高手帮忙,谢谢
      

  6.   

    因为exec 语句不能在自定义函数里使用,所以想用存储过程代替自定义函数来实现功能
      

  7.   

    是试着把原来那个存储过程写成自定义函数,不是再写一个函数使用exec调用存储过程
      

  8.   

    用自定义函数!
    CREATE function test(@testfield int)
    returns @temp table(@test int)
    AS
    begin
    --操作语句
    return
    end
    GO
    select * from @temp
      

  9.   

    如果没有好办法可以用个临时表先把exec结果存储一下,最后再连接一下,下面是个例子CREATE TABLE #tb(id INT IDENTITY(1,1),value NVARCHAR(20))
    INSERT INTO #tb(value)
    SELECT 'a' UNION 
    SELECT 'b' UNION
    SELECT 'c'
    --------------
    GOCREATE PROC test
    @a INT,
    @b INT OUTPUT
    AS
    SET @b = @a
    ----------------
    GOCREATE PROC test1
    AS
    CREATE TABLE #t(Rturn INT,id INT)
    DECLARE @i INT,@sum INT,@return INT
    SET @i = 1
    SET @sum = (SELECT COUNT(1) FROM #tb)WHILE @i <= @sum
    BEGIN
    EXECUTE test @i,@return OUTPUT  

    INSERT INTO #t(Rturn,id)
    SELECT @return,@i

    SET @i = @i + 1
    ENDSELECT #tb.id,value,Rturn FROM #tb,#t WHERE #tb.id = #t.idDROP TABLE #t
    GO
    --------------
    test1
    GO
    --------------
    DROP TABLE #tb
    DROP PROC test
    DROP PROC test1
      

  10.   

    谢谢ping3000提供的最新方法,我试试看
      

  11.   

    请问一下我SELECT COUNT(1) FROM #tb用的是动态sql实现的
    EXECUTE sp_executesql @sql 这样的形式,用你上面的方法不知如何处理?
    非常感谢ping3000仔细的解答.