Stored procedures 如何在SQLServer2008R2中声明游标以循环到某个业务单元
我有一些业务部门,如印度、国际、美国、英国。我必须:Stored procedures 如何在SQLServer2008R2中声明游标以循环到某个业务单元,stored-procedures,cursor,sql-server-2008-r2,Stored Procedures,Cursor,Sql Server 2008 R2,我有一些业务部门,如印度、国际、美国、英国。我必须: 创建一个表变量(虚拟内存表),其中的列与SPROC SP_Reportresultset匹配 声明一个包含所有业务单元的游标,然后该游标应在业务部门的上循环 对于每个BU,执行一个名为SP_Report的存储过程,并将数据插入表变量 最后,我必须从表variable+timestamp+BU中选择列,将它们插入另一个表并清除表变量 到目前为止,我已经制作了一个存储过程和表变量: 代码: declare @K table (BU nvarcha
SPROC SP_Report
resultset匹配业务部门的
上循环李>
BU
,执行一个名为SP_Report
的存储过程,并将数据插入表变量李>
variable+timestamp+BU
中选择列,将它们插入另一个表并清除表变量declare @K table (BU nvarchar(max), K nvarchar(max),Y money, A money, D money, YP money)
declare @FY int
declare @BU nvarchar(max)
INSERT INTO @K (BU,K,Y,A,D,YP) EXEC dbo.SP_Report '2012', 'India'
SELECT * FROM @K
这段代码给出了表变量的结果。现在我必须在游标中使用它,我不知道如何使用它。如何解决这个问题。您的代码应该是liske this(抱歉,我没有测试它):
declare @KT table (BU nvarchar(max), K nvarchar(max),Y money, A money, D money, YP money) ;
declare @FY int ;
declare @BU nvarchar(max);
declare @K nvarchar(max);
declare @Y money;
declare @A money;
declare @D money;
declare @YP money;
INSERT INTO @KT (BU,K,Y,A,D,YP) EXEC dbo.SP_Report '2012', 'India'
DECLARE BU_cursor CURSOR FOR
SELECT BU,K,Y,A,D,YP FROM @KT;
OPEN BU_cursor;
FETCH NEXT FROM BU_Cursor
INTO @BU,@K,@Y,@A,@D,@YP;
WHILE @@FETCH_STATUS = 0
BEGIN
-- place the cursor logic here
FETCH NEXT FROM BU_Cursor
INTO @BU,@K,@Y,@A,@D,@YP ;
END
CLOSE BU_Cursor;
DEALLOCATE BU_Cursor;