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

这篇文章主要介绍了mssql数据库游标如何批量修改符合条件的记录,需要的朋友可以参考下

需求:由于项目刚上传,没有票数,为了表现出一定的人气,需要在一开始把各项目的票数赋一个值 , 但每个项目不能一样,否则容易看出问题,呵呵 。
<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″&gt;还有一种用法,可能更加好,我认为,如果不需要对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

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部