首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个查询update rand set price= ();会产生相同的随机价格

问为什么这个查询update rand set price= ();会产生相同的随机价格
EN

Stack Overflow用户
提问于 2014-09-17 11:48:59
回答 1查看 254关注 0票数 2

SQL server文档指出,使用相同的种子调用rand函数会产生相同的值,随后对rand()的调用将根据最初提供的种子产生值。

代码语言:javascript
复制
SELECT RAND(100), RAND(), RAND()

但是,像这样的东西呢:

代码语言:javascript
复制
update dbo.product set price= rand();

这将始终为所有行生成相同的值。对这种行为的“学术”解释是什么?

EN

回答 1

Stack Overflow用户

发布于 2014-10-19 20:56:11

由于RAND不会为每行运行,因此您可以使用ABS(CHECKSUM(NEWID()来完成每行的随机值。

代码语言:javascript
复制
DECLARE @Min INT = 10, @Max INT = 20
UPDATE dbo.product SET price = ABS(CHECKSUM(NEWID())) % (@Max - @Min) + @Min
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25881972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档