SQL Server 使用游标更新数据库中的数据(使用存储过程)

时间:2022-05-20 00:30:01
ALTER PROCEDURE [dbo].[POR_CURSOR_FOR_UPDATE]    --创建存储过程
AS
BEGIN
SET nocount ON                   --忽略行数显示
DECLARE UpdateSHEBEI CURSOR --声明游标
FOR SELECT X_D_TJSL,X_G_JSL FROM FACT_MX --要查询的结果集
  OPEN UpdateSHEBEI          --打开游标 
DECLARE @X_D_TJ VARCHAR(128),@X_G_J VARCHAR(128);  --声明变量
 FETCH NEXT FROM UpdateSHEBEI INTO @X_D_TJ,@X_G_J     
 WHILE @@FETCH_STATUS = 0       --开始循环
 BEGIN
   SELECT @X_D_TJ=CEILING(rand()*50);
  
SELECT @X_G_J=CEILING(rand()*6);    --给变量赋值
   UPDATE FACT_SHEBEI_MX SET X_D_TJSL=@X_D_TJ,X_G_JSL=@X_G_J WHERE CURRENT OF UpdateSHEBEI --更新表数据
   FETCH NEXT FROM UpdateSHEBEI INTO @X_D_TJ,@X_G_J     --下一行数据
END
CLOSE UpdateSHEBEI; --关闭游标
 
DEALLOCATE UpdateSHEBEI
SET nocount OFF      --打开计数
END

   上学时学的东西,都忘了,用到了,就翻出来学习了一下。使用存储过程编写,可直接运行该存储过程注释都写好了,变量赋值也比较清楚,需要的可以直接复制下来然后替换就好。