1. 程式人生 > >[Asp.net] 隨機生成300個不重複的 純數字8位數

[Asp.net] 隨機生成300個不重複的 純數字8位數

 
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
--隨機生成300個不重複的 純數字8位數
--注:具體多少是可自定義的 就看你如何去反三
-- =============================================
CREATE PROCEDURE SP_ceshi_random
AS 
    BEGIN
        DECLARE @i INT= 0;
        DECLARE @j INT;
        DECLARE @qnum INT= 300; --生成隨機數的數量
        SET NOCOUNT ON
        CREATE TABLE #temp_Table ( num INT )
        WHILE ( @i < @qnum ) 
            BEGIN
                SELECT  @j = CAST(FLOOR(RAND() * ( 99999999 - 10000000 )
                                        + 10000000) AS INT) 
                IF ( NOT EXISTS ( SELECT    num
                                  FROM      #temp_Table
                                  WHERE     num = @j )
                   ) 
                    BEGIN
                        INSERT  #temp_Table
                                ( num )
                        VALUES  ( @j )
                        SET @i += 1; --當生成的數值不是臨時表裡時,就新增並資料+1;繼續迴圈
                    END
            END
        SELECT DISTINCT
                num
        FROM    #temp_Table
        DROP TABLE #temp_Table


    END
GO