2012-10-14 56 views
1

我知道如何通過單個選擇將行中的隨機數插入表中。但我怎麼能這樣做,使每個選擇在while循環迭代中的結果彼此不同?TSql循環中的隨機值集

我使用的代碼如下所示。我在集合中每行獲得的值是不同的,但是對於每次迭代,值集合都是相同的。

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

爲什麼不使用Rand代替?根據微軟的說法,如果你沒有將種子指定爲參數,每次運行腳本時都會得到不同的值。

另請參閱​​- 它展示瞭如何結合NewId和Rand。