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开头的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值