業務場景: 從系統參數表查詢數據, 關聯不同賬套後, 在系統參數詳情表中插入關聯結果, 大概需要 3 步:
一. 從系統單位表和賬套表查詢關聯信息
二. 從系統參數詳情表查詢最大id
三. 遍歷關聯信息, 設置Id, 並插入系統參數詳情表中
DECLARE @para_id AS INT,
@mod_code AS VARCHAR ( 50 ),
@max_para_id AS INT --用來記錄最大 id
--聲明一個遊標( 可以把遊標想象成每一條記錄 )用來遍歷查詢到的結果
DECLARE
C_paraId CURSOR FOR
SELECT para_id, mod_code
FROM
sys_para a,
sys_copy b
WHERE
b.is_main = 1
AND a.mod_code = '09'
AND para_code = '0901'
--打開遊標
OPEN C_paraId
--獲取遊標指向的數據
FETCH NEXT
FROM C_paraId INTO @para_id, @mod_code
--使用遊標遍歷集合( @@FETCH_STATUS是默認全局變量,不用聲明, =0表示匹配到了記錄 )
WHILE
@@FETCH_STATUS = 0
BEGIN
--執行具體的操作
--查詢最大id
SELECT
@max_para_id = ( SELECT MAX ( para_id ) + 1 FROM sys_para_data );
--插入詳情表數據
INSERT INTO sys_para_data ( para_id, mod_code)
VALUES
( @max_para_id, @mod_code)
--遊標指向下一條數據
FETCH NEXT
FROM C_paraId INTO @para_id, @mod_code
END
--關閉遊標
CLOSE C_paraId
--釋放遊標
DEALLOCATE C_paraId