时间:2021-07-01 10:21:17 帮助过:1人阅读
利用游标循环更新、删除dbo.stuInfo 表中的数据
1 DECLARE My_Cursor CURSOR --定义游标 2 FOR (SELECT * FROM dbo.stuInfo) --查出需要的集合放到游标中 3 OPEN My_Cursor; --打开游标 4 FETCH NEXT FROM My_Cursor ; --读取第一行数据 5 WHILE @@FETCH_STATUS = 0 6 BEGIN 7 --UPDATE dbo.stuInfo SET stuName = stuName + ‘AAA‘ WHERE CURRENT OF My_Cursor; --更新 8 DELETE FROM dbo.stuInfo WHERE CURRENT OF My_Cursor; --删除 9 FETCH NEXT FROM My_Cursor; --读取下一行数据 10 END 11 -- commit tran 12 CLOSE My_Cursor; --关闭游标 13 DEALLOCATE My_Cursor; --释放游标 14 GO
2. 利用游标循环更新MemberService表中的数据(更新每个用户所购买服务的时间)
1 DECLARE @UserId varchar(50) 2 DECLARE My_Cursor CURSOR --定义游标 3 FOR (SELECT UserId FROM dbo.MemberAccount) --查出需要的集合放到游标中 4 OPEN My_Cursor; --打开游标 5 FETCH NEXT FROM My_Cursor INTO @UserId; --读取第一行数据(将MemberAccount表中的UserId放到@UserId变量中) 6 WHILE @@FETCH_STATUS = 0 7 BEGIN 8 PRINT @UserId; --打印数据(打印MemberAccount表中的UserId) 9 UPDATE dbo.MemberService SET ServiceTime = DATEADD(Month, 6, getdate()) WHERE UserId = @UserId; --更新数据 10 FETCH NEXT FROM My_Cursor INTO @UserId; --读取下一行数据(将MemberAccount表中的UserId放到@UserId变量中) 11 END 12 CLOSE My_Cursor; --关闭游标 13 DEALLOCATE My_Cursor; --释放游标 14 GO
SQL中的循环、for循环、游标
标签: