首页 > 解决方案 > 在 SQL Server 中创建生成随机数函数

问题描述

我正在尝试在 SQL Server 中创建该函数。在这个函数中,我生成了随机数,但没有生成函数。

Create function [GetRandomNumber]
(
)
RETURNS bigint
as 
Begin
Declare @randomNo int
 set  @randomNo = (select round(rand(checksum(newid()))*(10001)+50000,0) as [GetRandomNumber])
 return @randomNo
End

这是在以下错误中生成的:

在函数中无效使用副作用运算符“newid”。
消息 443,级别 16,状态 1,过程 GetRandomNumber,第 8 行
在函数中无效使用副作用运算符“rand”。

标签: sql-server

解决方案


创建 SP 而不是函数。因为用户定义的函数中不允许某些系统函数。

CREATE PROCEDURE  [GetRandomNumber]
as 
Begin
Declare @randomNo int
 set  @randomNo = (select round(rand(checksum(newid()))*(10001)+50000,0) as [GetRandomNumber])
 return @randomNo
End

GO
 DECLARE @returnvalue INT
 EXEC @returnvalue = GetRandomNumber
 SELECT @returnvalue

推荐阅读