2012-10-14 2 views
1

하나의 선택으로 테이블에 삽입 된 행에 난수를 얻는 방법을 알고 있습니다. 그러나 while 루프의 반복에서 각 select의 결과가 서로 다를 수 있도록 어떻게 할 수 있습니까?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을 사용하지 않으시겠습니까? Microsoft에 따르면 매개 변수로 seed를 지정하지 않으면 스크립트를 실행할 때마다 다른 값을 갖게됩니다.

this article도 참조하십시오. - NewId와 Rand를 결합하는 방법을 보여줍니다.

관련 문제