生成随机数有现成的函数 rand(), 但是直接用于更新字段值时,会生成一样的值
update Articles set DownCount = cast(ceiling(rand(Articles.Id)*100)as int)
如果需要生成不同的值,有很多方法,下面是通过游标的方式来生成的
---定义游标
DECLARE @id INT
DECLARE update_cursor CURSOR
FOR
SELECT ID FROM Articles
--打开游标
OPEN update_cursor
-- 取第一条记录
FETCH NEXT FROM update_cursor INTO @id
WHILE @@FETCH_STATUS=0
BEGIN
--业务逻辑begin--
UPDATE Articles
SET ViewCount=cast(ceiling(rand() * 500) as int)
WHERE ID=@id
--业务逻辑end--
-- 取下一条记录
FETCH NEXT FROM update_cursor INTO @id
END
--关闭游标
CLOSE update_cursor
--释放内存
DEALLOCATE update_cursor