2021-11-15 13:47:04 版本 : TSQL中使用rand()函数的问题
作者: 周杨 于 2021年11月15日 发布在分类 / 计算机应用 / 数据库 / SQLSERVER 下,并于 2021年11月15日 编辑
 历史版本

备注 修改日期 修改人
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;


历史版本-目录  [回到顶端]
    知识分享平台 -V 5.1.4 -大信谛威