mssql sqlserver 生成随机数的另类方案分享


摘要:
下文主要讲述根据checksum函数结合newid()生成随机数的方法分享


newId():此函数可生成全球唯一标识
checksum:总和校验码,主要用于校验一组数据项的和。
checksum:需要输入一个参数,系统会返回相应的校验值。
例:

    select checksum(1),checksum(2),checksum(-1),
 checksum('A'),checksum(getdate()),checksum(newId())
 ---------------输出结果---------------------------
 1	2	-1	114	18765380	-1091497773
我们可以看出输入不同的参数,返回不同的校验值,
checksum函数常常应用于通信中数据验证和随机码的生成。

下文将讲述使用checksum 和newId() 生成随机编码的方法:
由于newId()函数每时每刻生成的字符串都不一样,
所以采用checksum生成的校验值,也会不一样,
我们可以采用newId函数的此特性结合checksum生成随机数,
来尽量做到数值的随机性。

 declare @a varchar(36)
 set @a =newId()
 select abs(checksum(@a))