2011年12月1日 星期四

[SQL] Cursor 使用方法

因業務需求,需要 SQL Server 觸發程序 觸發時,處理一堆資料

Example:
--變數宣告
DECLARE @A1 VARCHAR(10);
DECLARE @A2 VARCHAR(10);
DECLARE @A3 VARCHAR(10);
DECLARE @A4 VARCHAR(10);

--宣告 CURSOR 名稱為 DO_TEST
DECLARE DO_TEST cursor for

--來源資料取得
SELECT TOP 100 ID,MODEL_ID,MODEL_ED,SHEET_NUM FROM MGSCV.DBO.SCV_MODEL

--開啟 CURSOR
OPEN DO_TEST;

--執行 並將各欄位變數傳入 CURSOR
FETCH next from DO_TEST into @A1,@A2,@A3,@A4;

--開始迴圈
while (@@FETCH_STATUS = 0)
BEGIN
--要做的事情
PRINT CONVERT(VARCHAR(25),GETDATE(),121)+','+@A1+','+@A2+','+@A3+','+@A4
--注意 迴圈內最後一行需再次執行,防止無窮迴圈
FETCH next from DO_TEST into @A1,@A2,@A3,@A4;
END

--關閉 CURSOR
CLOSE DO_TEST;

--移除 CURSOR 宣告
DEALLOCATE DO_TEST;



沒有留言:

張貼留言