博客新地址

http://wyz.67ge.com/

快速生成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

posted @ 2007-10-29 11:46  yongzhi  阅读(383)  评论(0编辑  收藏  举报

博客新地址

http://wyz.67ge.com/