备注 | 修改日期 | 修改人 |
CREAT | 2021-11-15 13:47:04[当前版本] | 系统管理员 |
问题:在自定义的标量值函数中使用RAND()函数,单独测试没问题,但是生成整个函数的时候要报错,报错信息如下: 在函数内的 'rand' 中对带副作用的或依赖于时间的运算符的使用无效。
原因:标量函数不能使用不确定性的函数,如:RAND()、NEWID()
解决:将随机函数RAND()创建在视图中,再在TSQL中调用该视图即可,如:
create view v_random
as
select rand() as
random
go
create function dbo.f()
returns xxx
as
begin
declare @random float;
select @random =
random from v_random;
...
...
return xxx;