加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

mssql数据库游标批量更改符合条件记录的方法

发布时间:2023-08-02 15:22:13 所属栏目:MsSql教程 来源:
导读:需求:由于项目刚上传,没有票数,为了表现出一定的人气,需要在一开始把各项目的票数赋一个值 , 但每个项目不能一样,否则容易看出问题,呵呵 。

<div class="codetitle"><a style="CURSOR: pointer" data="51
需求:由于项目刚上传,没有票数,为了表现出一定的人气,需要在一开始把各项目的票数赋一个值 , 但每个项目不能一样,否则容易看出问题,呵呵 。
 
<div class="codetitle"><a style="CURSOR: pointer" data="51256" class="copybut" id="copybut51256" onclick="doCopy('code51256')"> 代码如下:
 
<div class="codebody" id="code51256">
 
DECLARE @Id varchar(50)
 
DECLARE My_Cursor CURSOR --定义游标
 
FOR (SELECT Id FROM dbo.kinpanAwardProject where session=9) --查出需要的集合放到游标中
 
OPEN My_Cursor; --打开游标
 
FETCH NEXT FROM My_Cursor INTO @Id; --读取第一行数据(将Id放到@Id变量中)
 
WHILE @@FETCH_STATUS = 0
 
BEGIN
 
PRINT @Id; --打印数据(Id)
 
UPDATE dbo.kinpanAwardProject SET ProTicketCount = cast( floor(rand()30) as int)+40 WHERE Id = @Id; --更新数据,使用随机数。
 
FETCH NEXT FROM My_Cursor INTO @Id; --读取下一行数据(将查询的Id放到@Id变量中)
 
END
 
CLOSE My_Cursor; --关闭游标
 
DEALLOCATE My_Cursor; --释放游标
 
GO
 
<IMG src="https://files.jb51.cc/file_images/article/201405/201405151629454.gif?2014415163014">还有一种用法,可能更加好,我认为,如果不需要对id进行判断的话,在修改时就不需要where查询,直接修改游标当前位置会更快。
 
<div class="codetitle"><a style="CURSOR: pointer" data="42971" class="copybut" id="copybut42971" onclick="doCopy('code42971')"> 代码如下:
 
<div class="codebody" id="code42971">
 
DECLARE My_Cursor CURSOR --定义游标
 
FOR (SELECT FROM dbo.MemberAccount) --查出需要的集合放到游标中
 
OPEN My_Cursor; --打开游标
 
FETCH NEXT FROM My_Cursor ; --读取第一行数据
 
WHILE @@FETCH_STATUS = 0
 
BEGIN
 
--UPDATE dbo.MemberAccount SET UserName = UserName + 'A' WHERE CURRENT OF My_Cursor; --更新
 
--DELETE FROM dbo.MemberAccount WHERE CURRENT OF My_Cursor; --删除
 
FETCH NEXT FROM My_Cursor; --读取下一行数据
 
END
 
CLOSE My_Cursor; --关闭游标
 
DEALLOCATE My_Cursor; --释放游标
 
GO
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章