sql 循环修改表中某一列的值 在线等 ~

xuxubaby 2011-03-18 11:55:58
先把表截图贴上,如下:



现在要做的是:红色圈中的部分,把ptrq这个字段,全部重新修改,修改后具体是多少是不固定的,但肯定还是一个int的数字,如何写一个函数或者存储过程,来循环修改ptrq这个字段的值。
谢过 ~
...全文
475 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
闹铃 2011-03-18
  • 打赏
  • 举报
回复
触发器
xuxubaby 2011-03-18
  • 打赏
  • 举报
回复
说是背景吧。

这是一个投票数量的字段,之前因为投票这块没做太多的要求,所以导致现在网络投票已达几百万(刷票者居多)。

现在客户提出要求,要改这一块。投票的详细信息我用另一个表来记录了,所以我会根据条件查询出不少刷票的记录,然后用总记录减去这个真是的投票记录,剩下的就是刷票的记录了。

而ptrq这个字段,是包括网络投票和手机投票2个投票方式的总数量,所以我只能通过这种方式来修改他的真是投票记录。

方式就是:总投票记录-刷票的记录

之后我再把这个数据更新到ptrq这个字段。

不知说的明白不 ~
ILOVE_ASPNET 2011-03-18
  • 打赏
  • 举报
回复

DECLARE CURSOR1 CURSOR FOR SELECT * FROM TABLE1
OPEN CURSOR1
FETCH NEXT FROM CURSOR1 INTO 这里声明变量接收你所要的值
WHILE @@FETCH_STATUS=0
BEGIN
UPDATE TABLE1 SET PRTQ=@PRTQ WHERE ID = (SELECT ID FROM TABLE2 WHERE 条件 )
END

xuxubaby 2011-03-18
  • 打赏
  • 举报
回复
不固定的值,是我从其他表中获取过来的数据。
--小F-- 2011-03-18
  • 打赏
  • 举报
回复
update tb set ptrq=cast(ptrq*rand() as int)
快溜 2011-03-18
  • 打赏
  • 举报
回复
你等于什么都没说
-晴天 2011-03-18
  • 打赏
  • 举报
回复
另外,你那不固定的值究竟是多少?
ljking0731 2011-03-18
  • 打赏
  • 举报
回复

update 表 set ptrq=cast(ptrq*rand() as int)
ljking0731 2011-03-18
  • 打赏
  • 举报
回复
update 表 set ptrq=cast(2134243*rand() as int)
-晴天 2011-03-18
  • 打赏
  • 举报
回复
你用什么列作标识列?

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧