【迴圈的計數方式純次數】
如果要像程式語言
FOR (INT i = 0; i<= 10; i++)
{
}
可以寫成
DECLARE @i INT
DECLARE @LoopCount INT
SET @i = 0
SET @LoopCount = 10
WHILE (@i <= @LoopCount)BEGIN
-- 做想做的事
SET @i = @i +1
END
【迴圈的計數方式是從資料表來的】
假設查詢出來的資料表有兩個欄位(Col1, Col2),這兩個欄位在迴圈中都要使用
-- 先定義兩個變數,用來存放每列的 Col1、Col2 的資料
DECLARE @Col1 INT(50)
DECLARE @Col2 NVARCHAR(50)
-- 定義一個指標MyCursor 給 查詢出來的資料表
DECLARE MyCursor CURSOR FOR
SELECT Col1, Col2 FROM Table1
-- 開啟指標
OPEN MyCursor
-- 取出第一筆指標,將指標內的資料塞入變數(指標內的資料需照欄位順序給)
FETCH NEXT FROM MyCursor INTO @Col1, @Col2
WHILE @@FETCH_STATUS = 0 -- 當取出指標中的資料成功時
BEGIN
// 這邊就可以針對每筆資料做什麼事
PRINT @Col1; // 比方直接顯示出來
PRINT CONCAT(@Col1, @Col2); // 比方把兩個資料的變數串在一起
// 取出下一筆指標,並將指標內的資料塞入變數
FETCH NEXT FROM MyCursor INTO @Col1, @Col2
END
CLOSE MyCursor -- 關閉指標 DEALLOCATE MyCursor -- 移除指標參考
沒有留言:
張貼留言