sql-server - 在 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”。
解决方案
创建 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
推荐阅读
- c# - Xamarin 无法转换 System.Threading.Tasks
- javascript - 从下拉菜单的多个实例中获取值
- android-studio - Intellij 结构搜索功能接口
- ios - FlexBox 不适用于 iPhone 6
- jenkins - jenkins 和 cloudbees jenkins 有什么区别?
- c++ - 如何将矩阵中的所有对角线设置为零?
- java - 如何在java中使用列表打印键、值对
- kotlin - 为什么 Kotlin 密封类无法实现子类型函数重载?
- java - 避免从 AWS S3 进行多次下载
- php - 带有用户和答案的 PHP 测验系统