业务场景: 从系统参数表查询数据, 关联不同账套后, 在系统参数详情表中插入关联结果, 大概需要 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