Pan*_*kaj 5 sql-server-2008 cursors
我有一些业务部门,如印度、国际、美国、英国。
我必须:
SP_Report
结果集匹配的列创建表变量(虚拟内存表)SP_Report
并将数据插入到表变量中代码:
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
Run Code Online (Sandbox Code Playgroud)
此代码返回表变量的结果。现在我必须使用它游标,我不知道如何使用。我怎样才能解决同样的问题。
DECLARE CURSOR的 MSDN/BOL 主题包含游标用法的示例语法。也就是说,因为我今天早上在火车上有 5 分钟的空闲时间......
-- Create temporary table for Business Units (replace with the "real" table)
DECLARE @BusinessUnit TABLE (BU NVARCHAR(MAX))
INSERT @BusinessUnit
SELECT 'India' UNION SELECT 'International' UNION SELECT 'US' UNION SELECT 'UK'
DECLARE @K TABLE (BU NVARCHAR(MAX),K NVARCHAR(MAX),Y MONEY,A MONEY,D MONEY,YP MONEY)
DECLARE @FY INT
DECLARE @BU NVARCHAR(MAX)
SET @FY = 2012
DECLARE BU_cursor CURSOR FAST_FORWARD FOR
SELECT BU FROM @BusinessUnit
OPEN BU_cursor
FETCH NEXT FROM BU_cursor INTO @BU
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT @K (BU, K, Y, A, D, YP)
EXEC dbo.SP_Report @FY, @BU
FETCH NEXT FROM BU_cursor INTO @BU
END
CLOSE BU_cursor
DEALLOCATE BU_cursor
SELECT * FROM @K
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
49595 次 |
最近记录: |