日期:2014-05-19  浏览次数:20335 次

怎样随机更新记录
怎样随机更新记录呢?
用update   table   set   updatetime=getdate()   where   id   in(select   id   from   table   order   by   newid())
这个不可以,提示必须给个TOP
当然了我想要的是不给TOP,各位高手有办法解决吗?
我是新手,没有几分,不好意思,请见谅。

------解决方案--------------------
就是说将updatetime的值打乱

那需要多次update
declare @i int
set @i=100
while @i> 0
begin
update table set updatetime=getdate() where id =(select top 1 id from table order by newid())
set @i=@i-1
end



------解决方案--------------------
或者换个思路

--先打乱次序放到临时表
select id,IDENTITY(int,1,1) as id0
into #
from table
order by newid()

--再更新时间
update a set updatetime=dateadd(second,t.id0,getdate())
from table a,# t
where a.id=t.id