存储过程里的输出参数一次只能输出一个具体的数据么?
有没有办法输出一组数据呢?
比如
SELECT SNO
FROM TABLE
WHERE 
这个查询出一组SNO,如何通过输出参数将这一组数据都输出呢?

解决方案 »

  1.   

    可以輸出一個表變量。sql2005就有array和自定義等類型了
      

  2.   

    可以返回紀錄集Create ProceDure SP_TEST
    As
    Select * From (Select 1 As ID Union All Select 2 Union All Select 3) A
    GO
    EXEC SP_TEST
    GO
    Drop Procedure SP_TEST
    --Result
    /*
    ID
    1
    2
    3
    */
      

  3.   

    我这样定义为什么不对呢
    create proc xx @x table(score int) output
    as
    select @x=score
    from sc
    where sno='1'
      

  4.   

    zuiaidaluo(縂有一天,人民幣會印上老子的微笑) ( ) 信誉:100  2007-08-02 14:08:41  得分: 0  
     
     
       我这样定义为什么不对呢
    create proc xx @x table(score int) output
    as
    select @x=score
    from sc
    where sno='1'
      
     
    ----------------哪有你這樣的語法?create proc xx
    as
    select score
    from sc
    where sno='1'
      

  5.   

    to:paoluo(一天到晚游泳的鱼)那个表变量不能用作存储过程的参数么?
      

  6.   

    估計樓主是想用表變量做存儲過程的輸出參數,但不幸的是SQL Server 2000中做不到...
      

  7.   

    zuiaidaluo(縂有一天,人民幣會印上老子的微笑) ( ) 信誉:100  2007-08-02 14:37:48  得分: 0  
     
     
       我就是想把所有返回的结果集放到一个表变量里,
    就像一个输出参数那样,可以实现么
      
     
    ----------------
    存儲過程和函數還是有區別的。你可以直接使用這個存儲過程返回的紀錄集。或者你使用函數吧。
      

  8.   

    create function xx()
    Returns @x table(score int)
    as
    Begin
    insert @x
    select score
    from sc
    where sno='1'
    return
    End
    GO
      

  9.   

    to:paoluo(一天到晚游泳的鱼)最近你似乎一直都泡在csdn
      

  10.   

    newqq() ( ) 信誉:100  2007-8-2 15:11:04  得分: 0  
     
     
       
    to:paoluo(一天到晚游泳的鱼)最近你似乎一直都泡在csdn  
     
    --------------
    最近沒那麼忙。 :)