在sqlserver中使用游标update数据记录
根据测试需要,需改变表ST_RIVER_R中某时间段内数据的字段Z值,并且要求相邻两条数据Z值前后相差正负0.01。 想到了两种方法: 1、最简单的方法,就是直接通过客户端编辑数据库记录 2、使用update命令编辑字段值 第一种方式很简单,就是人为修改,但是由于此表的数据量比较大,客户端的局限性很难找到区间内的数据,所以放弃此方法。 第二种方式,本来用update修改表数据是很简单的一件事情,但是重要的是现在要求前后相邻两条数据Z值有关系,所以简单的update语句无法实现该需求,于是想了下貌似只能用数据库游标来处理了,经研究写了下面一段程序。 写完后经过简单测试脚本没问题,之后手抖的在测试库中执行了下,结果如期而生,搞定!
--查询复核要求的结果集 --开启游标进行处理 --更新游标所在行的数据 --游标移到下一行 --关键在这里: old值为前一行的值加/减0.01 --关闭游标 注:以上脚本中有两个点需要考虑,一个是游标的使用,另一个是如何解决正负0.01这个值的随机发生生成。 随机生成0.01:sign(0.5-RAND())*0.01 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |