SQL Foreach 逐筆執行 以及 取得目前新增(INSERT INTO)進SQL的流水號

-- 宣告變數

DECLARE @para1 VARCHAR(50)

DECLARE @para2 uniqueidentifier

DECLARE @para3 VARCHAR(100)


-- 宣告指標變數

DECLARE _cursor CURSOR FOR

SELECT s1,s2,s3 FROM Table_A where 1 = 1


-- 啟用指標變數

OPEN _cursor

-- 以指標變數為基準點, 將取出的欄位值,依序塞給我們自訂的變數,亦即將每筆

-- s1 => @para1、 s2 => @para2 、s3 => @para3

FETCH NEXT FROM _cursor INTO @para1,@para2,@para3


WHILE @@FETCH_STATUS = 0

BEGIN

insert into Table_B(c1,c2,c3) values(@para1,@para2,@para3)

--取目前 id 可以抓到該筆目前新增這筆的流水號(辨識值? 可能要去查查看)

SET @id = SCOPE_IDENTITY();


-- 指標變數往下移動, 並將取出的欄位值, 設定給我們自訂的變數

-- 類似foreach的取下一筆

FETCH NEXT FROM _cursor INTO @para1,@para2,@para3

END


-- 關閉指標變數

CLOSE _cursor

-- 釋放指標變數

DEALLOCATE _cursor


參考:

https://toyo0103.github.io/2014/03/13/%E3%80%90SQL%E3%80%91SQL%E7%9A%84foreach%EF%BC%8C%E9%80%90%E7%AD%86%E5%9F%B7%E8%A1%8C/

留言

這個網誌中的熱門文章

無法載入檔案或組件 'System.IO.Compression' 或其相依性的其中之一。

MongoDB 入門

javascript 更改屬性及創建標籤