Abo*_*ing 5 sql sql-server random performance sql-update
我想对表执行更新查询并将 2 列设置为随机值。这是一个例子:
Update Network_Info_Detail set ART = (rand()*4000)+2, NRT = (rand()*1000)+2
显然,所有行都将使用随机生成的相同值进行更新,因此我需要创建一个循环来为每行生成随机值。
DECLARE @size integer
SET @size = (SELECT Count(*) from Network_Info_Detail)
While @size > 1
BEGIN
Update top (@size) Network_Info_Detail set ART = (rand()*4000)+2, NRT = (rand()*1000)+2
SET @size = @size - 1
END
该脚本更新具有不同数字的行,但速度非常慢。有没有办法提高执行时间?
您可以使用 SQL Server 技巧来生成随机数: rand(checksum(newid()))。
Update Network_Info_Detail
set ART = (rand(checksum(newid()))*4000)+2,
NRT = (rand(checksum(newid()))*1000)+2;
Run Code Online (Sandbox Code Playgroud)