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;
我有一个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;