日期:2014-05-17  浏览次数:20408 次

关于游标更新了一个时间索引字段之后。。
对几条数据进行更新,每次更新时间都必须在上次时间上多加10毫秒(updatetime字段),然后另一个字段(updatecount)+1,ps:updatetime字段上建了非聚集索引。

结果读出几条updatecount<20的数据用游标进行逐条更新的时候

declare @j=10
update 表 set updatecount=updatecount+1,updatetime=dateadd(ms,@j,getdate()) 
set @j=@j+10


每次都更新了N次,updatecount都直接到20.
当把updatetime的非聚集索引去掉的时候,更新就一切正常了。

求解,时间索引和游标有冲突吗?

或求更好的办法。。





------解决方案--------------------
游标代码写全来

游标有很多种打开方式,其中如果动态游标,不排除在游标更新循环中出现一条数据被修改多次,造成你说的现象