USE tempdb GO -- 創建測試表 CREATE TABLE tb(id char(8)) -- 創建用於自動過濾重複值的唯一索引 CREATE UNIQUE INDEX IX_tb ON tb(id) WITH IGNORE_DUP_KEY GO -- 測試數據插入的處理時間, 記錄開始處理的時間點 DECLARE @dt datetime SET @dt = GETDATE() -- 插入隨機數據 SET NOCOUNT ON DECLARE @row int SET @row = 1000000 -- 設置總記錄數 WHILE @row >0 BEGIN -- 顯示提示信息, 表示還需要插入多行數據 RAISERROR('need %d rows', 10, 1, @row) WITH NOWAIT -- 插入隨機的位編碼數據 SET ROWCOUNT @row INSERT tb SELECT id = RIGHT(100000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 8) FROM syscolumns c1, syscolumns c2 SET @row = @row - @@ROWCOUNT END -- 顯示插入數據使用的時間 SELECT BeginDate = @dt, EndDate = GETDATE(), Second = DATEDIFF(Second, @dt, GETDATE()), GO -- 顯示最終的結果記錄是否正確 SELECT COUNT(*) FROM tb GO -- 刪除測試 DROP TABLE tb
SQL快速生成100萬不重複的8位編號
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.