快速生成n條8位不重復的編號[轉自鄒建]
最近正好用到,轉過來備份一下
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 = 100 -- 設置總記錄數
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 * from tb
-- 刪除測試
DROP TABLE tb

浙公網安備 33010602011771號