微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

T-SQL UPDATE中的每一行的RAND都不同

我有跟随T-sql更新具有测试数据的表:
UPDATE
SoMetable
SET
    Created = GETDATE ( ) - CAST ( RAND ( ) * 365 AS int ),LastUpdated = GETDATE ( ) - CAST ( RAND ( ) * 365 AS int )

我想让它在过去一年里挑选随机数,不幸的是它对每一行使用相同的日期.什么是最好的方式让它随机每一行更新?

解决方法

使用RAND(CHECKSUM(NEWID()))

> NEWID返回一个GUID
> CHECKSUM使其随机变为int
>兰德的种子

在您的情况下,您可以模块检查,因为CHECKSUM(NEWID())已经是随机的.

CHECKSUM(NEWID()) % 365

原文地址:https://www.jb51.cc/mssql/82942.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐