INSERT INTO 与 Rand() 函数抛出错误

INSERT INTO with Rand() function throwing error

我有一个table,Benefit,其中保单编号是随机生成的,当然应该是唯一的。以下是我的陈述和查询。

INSERT INTO Benefit([Company Name], [Policy #]) 
VALUES ('Assumption Life', RAND(100) * 100)

INSERT INTO Benefit([Company Name], [Policy #]) 
VALUES ('Aviva Canada', RAND(1) * 12)

INSERT INTO Benefit([Company Name], [Policy #]) 
VALUES ('Blue Cross' RAND(100) * 100)

INSERT INTO Benefit([Company Name], [Policy #]) 
VALUES ('Health & Dental Insurance' RAND(100) * 100)

我收到回复:

Started executing query at Line 123
(1 row affected)
(1 row affected)

Msg 2627, Level 14, State 1, Line 3
Violation of UNIQUE KEY constraint 'UQ__Benefit__2E118E21CDDEB4E7'. Cannot insert duplicate key in object 'dbo.Benefit'. The duplicate key value is (71).

Msg 2627, Level 14, State 1, Line 4
Violation of UNIQUE KEY constraint 'UQ__Benefit__2E118E21CDDEB4E7'. Cannot insert duplicate key in object 'dbo.Benefit'. The duplicate key value is (71).

前两个成功执行,因为 RAND() 函数有点不同,但是从第 3 个开始它抛出重复异常,因为它与第一个记录相同。

我试过 RAND(),它总是分配 0。从第二行开始,抛出同样的错误。

为什么不生成随机数?我不清楚如何使用 RAND() 函数吗?

This explains the usage of RAND

感兴趣的陈述是“每次使用特定种子值时,RAND 函数都会 return 一个可重复的随机数序列。

要在两个值(范围)之间创建一个随机小数,可以使用以下公式:

SELECT RAND()*(b-a)+a;