SQL Server存储过程使用游标

ALTER PROCEDURE [dbo].[B_OF_DATA_PLA]
AS
BEGIN
-- 声明变量
DECLARE @Value1 nvarchar(100),@Value2 datetime,@Value3 datetime
-- 定义游标
DECLARE cE_OF CURSOR FOR
SELECT E_NOF,E_OF_DATE_DEB_PLA,E_OF_DATE_FIN_PLA
FROM E_OF
WHERE E_ETATOF != 'O'
AND E_OF_DATE_DEB_PLA IS NOT NULL AND E_OF_DATE_FIN_PLA IS NOT NULL
-- 打开游标
OPEN cE_OF
-- 取出第一条
FETCH NEXT FROM cE_OF INTO @Value1,@Value2,@Value3
-- 循环
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE B_OF
SET DPLUSTOT = @Value2,FPLUSTARD = @Value3
WHERE ETATOF != 'O' AND NOF = @Value1;
UPDATE E_OF
SET E_DPLUSTOT = @Value2,E_FPLUSTARD = @Value3
WHERE E_ETATOF != 'O' AND E_NOF = @Value1;
-- 获取下一条记录
FETCH NEXT FROM cE_OF INTO @Value1,@Value2,@Value3
END
CLOSE cE_OF
DEALLOCATE cE_OF
END
posted @   一纸年华  阅读(69)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示