我知道如何使用单个选择将行中的随机数插入到表中。但是我怎么能这样做,以便在while循环的迭代中每个选择的结果彼此不同?
我正在使用的代码看起来像这样。我在集合中每行中获得的值是不同的,但每次迭代的值集都是相同的。
WHILE some condition is true
BEGIN
DECLARE @GamesRandomlySorted TABLE
(
RandomSortId INT,
GameId INT
)
INSERT INTO @GamesRandomlySorted (RandomSortId, GameId)
SELECT Checksum(NewId()), GameId
FROM Games
SELECT *
FROM @GamesRandomlySorted
ORDER BY RandomSortId
END
答案 0 :(得分:0)
为什么不使用Rand?根据Microsoft的说法,如果您没有将种子指定为参数,则每次运行脚本时都会得到不同的值。
另见this article - 它显示了如何组合NewId和Rand。