SQL FOR循环更新数据(存储过程,游标)

项目在整改后新增字段需要适配原有的项目,想到使用游标来使用循环更新数

DECLARE My_Cursor CURSOR dynamic--定义游标
FOR 
SELECT a.F_Id,b.suoshuxianlu,b.userpeople_id,b.bumen_id FROM dbo.operate_check_asset a LEFT JOIN dbo.asset_info b on a.asset_id=b.F_Id--查出需要的集合放到游标中
OPEN My_Cursor --打开游标
DECLARE @F_Id varchar(50),@suoshuxianlu varchar(50),@userpeople_id varchar(50),@bumen_id varchar(50)
FETCH NEXT FROM My_Cursor INTO @F_Id,@suoshuxianlu,@userpeople_id,@bumen_id --读取第一行数据(将MemberAccount表中的UserId放到@UserId变量中)   这里面的数据顺序需要和查询出的字段顺序保持一致
WHILE @@FETCH_STATUS = 0
    BEGIN
		PRINT @F_Id; --打印数据(打印MemberAccount表中的UserId)
		PRINT @suoshuxianlu;
		PRINT @bumen_id;
		PRINT @userpeople_id;
        UPDATE dbo.operate_check_asset SET assetLine = @suoshuxianlu,assetUserId = @userpeople_id,assetOrganizeId = @bumen_id WHERE F_Id = @F_Id--更新数据
        FETCH NEXT FROM My_Cursor INTO @F_Id,@suoshuxianlu,@userpeople_id,@bumen_id--读取下一行数据(将MemberAccount表中的UserId放到@UserId变量中)
    END
CLOSE My_Cursor --关闭游标
DEALLOCATE My_Cursor --释放游标
GO

 

你可能感兴趣的:(sql,mysql,sql循环更新,sql,for,sql循环,sql批量更新,sql批量)