我有一个表,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).
The statement has been terminated.
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函数将返回可重复的随机数序列。“
要在两个值(范围)之间创建一个随机的十进制数,可以使用以下公式:
SELECT RAND()*(b-a)+a;
我希望这会有所帮助。