当前位置:Gxlcms > 数据库问题 > SQL中的循环、for循环、游标

SQL中的循环、for循环、游标

时间:2021-07-01 10:21:17 帮助过:1人阅读

DECLARE My_Cursor CURSOR --定义游标 2 FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游标中 3 OPEN My_Cursor; --打开游标 4 FETCH NEXT FROM My_Cursor ; --读取第一行数据 5 WHILE @@FETCH_STATUS = 0 6 BEGIN 7 --UPDATE dbo.MemberAccount SET UserName = UserName + ‘A‘ WHERE CURRENT OF My_Cursor; --更新 8 --DELETE FROM dbo.MemberAccount WHERE CURRENT OF My_Cursor; --删除 9 FETCH NEXT FROM My_Cursor; --读取下一行数据 10 END 11 CLOSE My_Cursor; --关闭游标 12 DEALLOCATE My_Cursor; --释放游标 13 GO
 利用游标循环更新、删除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循环、游标

标签:

人气教程排行