2014-05-20 5 views
4

테이블에 대한 업데이트 쿼리를 수행하고 임의의 값으로 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

이 스크립트는 다른 번호로 행을 업데이트하지만 매우 느리다. 실행 시간을 개선 할 수있는 방법이 있습니까?

+0

구문과 문제가 SQL Server이기 때문에 sql-server 태그가 추가되었습니다. –

답변

4

SQL Server 트릭을 사용하여 임의 번호 (rand(checksum(newid())))를 생성 할 수 있습니다.

Update Network_Info_Detail 
    set ART = (rand(checksum(newid()))*4000)+2, 
     NRT = (rand(checksum(newid()))*1000)+2; 
+0

정말 대단합니다, 정말 고마워요! – AboutNothing

관련 문제