Sql產生不重複的數字

來源:互聯網
上載者:User

標籤:

-- =============================================-- Author:TUZI-- Create date: 2016.4.18-- Description:組建活動邀約碼(活動編碼+Code是唯一)/* exec sp_generateInvitecode   @CampaignCode=‘test‘ ,@Length=10,@Quantity=100000 */-- =============================================ALTER PROCEDURE sp_generateInvitecode(@CampaignCode nvarchar(50)                                      ,--所屬活動編碼                                       @Length int                                      ,--Code的長度                                       @Quantity int--Code的數量)ASBEGIN    CREATE TABLE #t(Code nvarchar(50));    CREATE UNIQUE INDEX idx_union_code ON #t(Code)    DECLARE @batchNum nvarchar(50);    SET @batchNum = REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(nvarchar(19),GETDATE(),121),‘ ‘,‘‘),‘-‘,‘‘),‘:‘,‘‘),‘.‘,‘‘)    --如果活動進行中,需要繼續產生邀請碼,就得排除已經存在於表中的碼    SELECT Code INTO #existsCode      FROM  XXX      WHERE CampaignCode = @CampaignCode    DECLARE @runQ int = 0;    WHILE @runQ < @Quantity        BEGIN            INSERT INTO #t            SELECT TOP 10000 LEFT(CAST(LEFT(‘10000000000‘,@Length)AS bigint) + ABS(CHECKSUM(NEWID())),@Length)              FROM syscolumns c1,syscolumns c2;            DELETE #t            WHERE Code IN(SELECT Code                            FROM #existsCode);            SELECT @runQ = COUNT(DISTINCT Code)              FROM #t;        END    INSERT INTO  XXX(CampaignCode                            ,Code                            ,BatchNum                            ,createTime)    SELECT TOP (@Quantity)@CampaignCode                         ,Code                         ,@batchNum                         ,GETDATE()      FROM #t    DROP TABLE #t;ENDGO

  

Sql產生不重複的數字

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.