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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的MsSQL相关文章