读书人

怎样随机更新记录,该怎么解决

发布时间: 2012-02-17 17:50:42 作者: rapoo

怎样随机更新记录
怎样随机更新记录呢?
用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

读书人网 >SQL Server

热点推荐