为了在循环中向存储过程发送参数

时间:2013-12-20 16:27:44

标签: sql-server-2008

我有一个名为 fnc_FiderSumOfAboneSayisi 的函数,可以使用参数 @prm_fiderid 发送一个整数值。所以我有一个名为 fider_data 的表,其中包含ID列。 现在我想将fider_data ID列值作为参数发送到我的fnc_FiderSumOfAboneSayisi函数作为循环。

我该怎么办?

---------- FUNCTION

  

将函数fnc_FiderSumOfAboneSayisi @prm_fiderid更改为int

     

返回int

     

作为

     

开始

     

声明@parent int = @prm_fiderid;

     

声明@SUM int;

     

与q As(

select * from fider_data    where ParentId = @parent

union all

select lc.*    from q

join fider_data lc on lc.ParentId = q.ID )
     

SELECT @ SUM =(SELECT sum(SAYI)FROM q其中ID <33000)返回@SUM

     

---------- TABLE fider_data

ADI ID

TM 1 1

TM 2 2

TM 3 3

TM 4 4

TM 5 5

TM 6 6

TM 7 7

TM 8 8

TM 9 9

1 个答案:

答案 0 :(得分:0)

DECLARE @id INT

SET @id = (SELECT TOP 1.ID FROM fider_data ORDER BY ID ASC)



WHILE @id IS NOT NULL

BEGIN
    SELECT  fnc_FiderSumOfAboneSayisi @prm_fiderid = @id

    SET @id = (SELECT TOP 1.ID FROM fider_data WHERE ID > @id ORDER BY ID ASC)  

END