我用它来多次调用sp
declare @field1 date
declare cur CURSOR LOCAL for
select b.thedate from [GENESIS_SCO].[dbo].ExplodeDates('20140415','20140417') b
open cur
fetch next from cur into @field1
while @@FETCH_STATUS = 0 BEGIN
exec GENESIS_SCO..Get_TTIRA3 N'2101', @field1,1,9901023
fetch next from cur into @field1
END
close cur
deallocate cur
这将返回一个数据集n次,其中n是循环运行的次数。对于这些参数,它为field1的不同值返回50,60和120行。
我需要一个数据集中的所有230行(50 + 60 + 120)行,以便我可以在SSRS中使用它进行报告。
假设在第一次迭代中返回
VALUE | CODE
--------------
BLUE | 234
PINK | 755
LILAC | 734
第二次迭代
VALUE | CODE
--------------
RED | 245
SILVER | 755
BLACK | 76555
在第三次迭代中
VALUE | CODE
-------------------
BROWN | 9282
QUICKSILVER | 2542
YELLOW | 55
我需要的是
VALUE | CODE
--------------------
BLUE | 234
PINK | 755
LILAC | 734
RED | 245
SILVER | 755
BLACK | 76555
BROWN | 9282
QUICKSILVER | 2542
YELLOW | 55
答案 0 :(得分:0)
您可以使用表变量(在SQL Server 2000之上)或临时表来累积其中生成的记录集。
declare @field1 date
declare @tmp table(value varchar(20), code int)
declare cur CURSOR LOCAL for
select b.thedate from [GENESIS_SCO].[dbo].ExplodeDates('20140415','20140417') b
open cur
fetch next from cur into @field1
while @@FETCH_STATUS = 0 BEGIN
insert @tmp exec GENESIS_SCO..Get_TTIRA3 N'2101', @field1,1,9901023
fetch next from cur into @field1
END
close cur
deallocate cur
select * from @tmp