要在10000000 - 99999999之間產生100萬個不重復的隨機數??梢越⒁粋€表table1,這個表有兩個字段,一個是所產生的隨機數字段(int型),另外一個也是int型字段。
使用99999999 - 10000000 =89999999 整除 1000000 = 89(舍去)。然后從10000000開始循環1000000次,從10000000開始每一次加89,
即10000000、10000089、10000178...
然后每循環一次,使用newid生成一個隨機數,將這兩個數做為值插入table1中。即第一個字段插入按步長89遞增的數,第二個數是使用newid隨機生成的數。這樣,table1就有100萬條記錄了,不過隨機值是順序的。但由于第二個字段是隨機的,因此,只要按第二個字段排序,第一個字段上的值就是隨機的。
這樣做不用檢查重復值就可以保證得到1000000個無重復的隨機數。而且它們是均勻分布在10000000到99999999之間。
當然,也可以隨機變化89的步長,使其更加隨機。
這樣做還有一個好處,可以分批地生成記錄,然后一起插入表中。如一次產生1000條這樣的記錄,插入后再產生下一千條記錄。這樣只要循環1000次就可完成。
新聞熱點
疑難解答