SQL快速生成100万不重复的8位编号

来源:互联网 发布:windows软件字体乱码 编辑:程序博客网 时间:2024/05/02 05:06
USE tempdbGO-- 创建测试表CREATE TABLE tb(id char(8)) -- 创建用于自动过滤重复值的唯一索引CREATE UNIQUE INDEX IX_tb ON tb(id)WITH IGNORE_DUP_KEY GO -- 测试数据插入的处理时间, 记录开始处理的时间点DECLARE @dt datetimeSET @dt = GETDATE() -- 插入随机数据SET NOCOUNT ONDECLARE @row intSET @row = 1000000 -- 设置总记录数WHILE @row >0BEGIN    -- 显示提示信息, 表示还需要插入多行数据    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 - @@ROWCOUNTEND -- 显示插入数据使用的时间SELECT BeginDate = @dt, EndDate = GETDATE(),     Second = DATEDIFF(Second, @dt, GETDATE()),GO -- 显示最终的结果记录是否正确SELECT COUNT(*) FROM tbGO -- 删除测试DROP TABLE tb

原创粉丝点击