SQL生成百万随机数--sqlserver

--建表
表名tb  字段id 必须是char型
CREATE TABLE tb(id char(8))

--创建用于自动过滤重复值的唯一索引  表名tb  字段id
CREATE UNIQUE INDEX IX_tb ON           tb(id)
WITH IGNORE_DUP_KEY GO


--插入随机数据
SET NOCOUNT ON
DECLARE @row int
SET @row = 1000000  -- 设置总记录数 1000000
WHILE @row >0
BEGIN
    --显示提示信息, 表示还需要插入多行数据
    RAISERROR('need %d rows', 10, 1, @row) WITH NOWAIT
 
    --插入随机的位编码数据
    SET ROWCOUNT @row

    --插入方法A    随机数字
    INSERT tb SELECT id = RIGHT(100000000(最好是比记录数大,相等也可以) + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 88位数))
    --插入方法B    随机字母加数字
    INSERT tb SELECT id = RIGHT(REPLACE(NEWID(), '-', ''),8(8位数))

    FROM syscolumns c1,syscolumns c2
    SET @row = @row - @@ROWCOUNT
END

注意:生成的随机数其实是0,1,2.。。的概率是相同的,所以0开头的跟与1开头的数据数量基本相同,所以建议多生成10%的数据,去除掉以0开头的数据

猜你喜欢

转载自blog.csdn.net/qq_34746960/article/details/82811180