我有一些业务部门,例如印度、国际、美国、英国。
我必须:
SP_Report
使用与存储过程结果集匹配的列创建表变量(虚拟内存表)- 声明一个包含所有业务单元的游标,然后游标应该循环遍历 BU 的
- 对于每个 BU,执行一个名为的存储过程
SP_Report
并将数据插入到表变量中 - 最后我必须从表变量+时间戳+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
此代码返回表变量的结果。现在我必须使用它光标,我不知道如何。我怎么能解决同样的问题。
DECLARE CURSOR的 MSDN/BOL 主题包含游标使用的示例语法。也就是说,因为我今天早上在火车上还有 5 分钟的空闲时间......
你能更进一步,让内部查询运行动态 sql,如下所示:
我认为,这是轻松理解CURSOR的最佳示例。
在 SQL Server 中使用光标
了解游标的简单示例: