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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...