如何在SQL Server中获取数字随机唯一ID
我正在使用SQL Server 2005,请告诉我如何获取表中每行的6位数(应该是随机的唯一数字)值。如何在SQL Server中获取数字随机唯一ID
我有一个表中的字段,其中我需要6位数字值(随机和唯一)。
请帮我这么做。
SELECT ABS(CHECKSUM(NEWID())) % 999999
一个电话号码:
SELECT RIGHT('000000' + CAST(ABS(CHECKSUM(NEWID())) % 999999 AS varchar(6)), 6)
NEWID大约是随机的,因为你可以在SQL Server中获得。
但是,如果你想要唯一的,你也可以从000000开始并转到999999.任何随机生成器将会击中birthday problem。
你可以有独特的或随机的是可靠的,但不能同时可靠
不保证这不会产生重复 – 2010-05-17 06:53:25
@Mitch小麦:我延长我的回答,因为你评论 – gbn 2010-05-17 06:55:15
选择左('000000'+ CAST(ABS(CHECKSUM(NEWID()))999999 AS varchar(6)) ,6)总是给我000000,没有其他结果 – 2010-05-17 07:13:46
6位值不会是非常独特的,现在是什么呢? – 2010-05-17 06:45:51
实际上需要一个随机的6位数值,并且对于表 – 2010-05-17 06:47:38
中的每一行都是唯一的,实际上它将是一个“扩展”到电话号码..所以不能超过那个值 – 2010-05-17 06:48:17