SQL Server数据库生成10行四位随机数

文章详细解释了如何使用SQL语句生成一个范围在1000到9999之间的随机四位数,通过NEWID和CHECKSUM函数实现校验数据完整性的过程,以及为什么选择特定操作来限制随机数范围。
摘要由CSDN通过智能技术生成
DECLARE @i INT --定义一个整数类型变量
SET @i=1 --设置初始值唯一
CREATE TABLE #biao(sj VARCHAR(10)); --新建一个临时表用来存放后面生成的随机数
WHILE @i<=10 --设置循环条件<=10
BEGIN
INSERT #biao(sj)VALUES((ABS(CHECKSUM(NEWID())) % 9000 + 1000)); --这句是关键代码,用来生成随机数
SET @i=@i+1 --每循环一次,变量@i就加1,循环十次后@i变成11跳出循环,循环一次输出一行,总共输出10行。
END --代码块结尾
SELECT * FROM #biao --查看最后临时表数据,也就是生成的随机数。
DROP TABLE #biao --删除临时表

单独解释一下 INSERT #biao(sj)VALUES((ABS(CHECKSUM(NEWID())) % 9000 + 1000));

这段代码的主要是(ABS(CHECKSUM(NEWID())) % 9000 + 1000)。他的含义是首先使用NEWID()函数生成一个唯一的标识符。然后使用CHECKSUM函数函数计算改标识符的检验和。

所谓检验和就是校验和是一种简单的错误检测方法,用于验证数据在传输过程中是否发生了错误。通俗易懂地说,就好比你给朋友传纸条,为了确保纸条内容没有被篡改或出错,你会在纸条上写一个数字,让朋友收到后计算这个数字,如果计算结果与你写的数字一样,就说明纸条内容没有问题。

在计算机中,校验和也是类似的概念。当数据通过网络传输或存储时,会附加一个校验和,接收方会根据接收到的数据计算校验和,然后与发送方传来的校验和进行比对,如果一致,则说明数据传输没有错误。

校验和通常是通过对数据进行运算(如求和、取余等)得到的一个值,用于验证数据的完整性和准确性。虽然校验和并不能100%保证数据的准确性,但可以在很大程度上提高数据传输的可靠性。

然后使用ABS函数将生成的CHECKSUM转换后的数取绝对值,变成正数。再将这个数用来除9000取余。

这里为什么要除9000呢?

因为我们希望生成的随机数是一个四位数,即在1000到9999之间。所以我们需要一个范围是9000的随机数,然后再加上1000,就可以得到1000到9999之间的随机四位数。

取余操作的作用是将生成的随机数限制在0到8999之间,然后再加上1000,就可以确保生成的随机数是在1000到9999之间的四位数。

因此,除以9000并取余的操作是为了确保生成的随机数在1000到9999之间,符合四位数的要求。

最后加上一千就会得到一个随机的四位数。

最后,代码仅供参考,主要提供思路,具体情况具体对待,根据业务需求修改代码。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值