rand()为什么在函数中用不了,急用! rand是不确定函数.而用户定义函数是不支持不确定函数的. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在自定义的函数里面不允许包含不确定的函数。用户定义函数中不允许使用会对每个调用返回不同数据的内置函数。用户定义函数中不允许使用以下内置函数:@@CONNECTIONS @@PACK_SENT GETDATE @@CPU_BUSY @@PACKET_ERRORS GetUTCDate @@IDLE @@TIMETICKS NEWID @@IO_BUSY @@TOTAL_ERRORS RAND @@MAX_CONNECTIONS @@TOTAL_READ TEXTPTR @@PACK_RECEIVED @@TOTAL_WRITE查看联机帮助不允许在用户定义函数主体中内置不确定函数;这些不确定函数如下:@@CONNECTIONS @@TOTAL_ERRORS @@CPU_BUSY @@TOTAL_READ @@IDLE @@TOTAL_WRITE @@IO_BUSY GETDATE @@MAX_CONNECTIONS GETUTCDATE @@PACK_RECEIVED NEWID @@PACK_SENT RAND @@PACKET_ERRORS TEXTPTR @@TIMETICKS create view v_getdateasselect date=getdate()gocreate function dbo.testdate ()returns intasbegin ------------------------ declare @a datetime select @a = date from v_getdate ------------------------- return 1endgogetdate()是不确定函数,而用户定义函数中不允许使用不确定函数.使用一个视图中转一下即可,参考我上面的.注;以上是引用函数内部BEGIN...END 块中的语句不能有任何副作用。函数副作用是指对具有函数外作用域(例如数据库表的修改)的资源状态的任何永久性更改。函数中的语句唯一能做的更改是对函数上的局部对象(如局部游标或局部变量)的更改。不能在函数中执行的操作包括:对数据库表的修改,对不在函数上的局部游标进行操作,发送电子邮件,尝试修改目录,以及生成返回至用户的结果集。在函数中不可使用exec,也就不能执行存储过程(当然也包括SP_打头的系统存储过程),不能使用动态SQL;函数中不能更改函数以外的对象,如对Table的Insert\Delete\Update;不能在函数中执行的操作包括:对数据库表的修改,对不在函数上的局部游标进行操作,发送电子邮件,尝试修改目录,以及生成返回至用户的结果集。 不允许在用户定义函数主体中内置不确定函数;这些不确定函数如下:@@CONNECTIONS @@TOTAL_ERRORS @@CPU_BUSY @@TOTAL_READ @@IDLE @@TOTAL_WRITE @@IO_BUSY GETDATE @@MAX_CONNECTIONS GETUTCDATE @@PACK_RECEIVED NEWID @@PACK_SENT RAND @@PACKET_ERRORS TEXTPTR @@TIMETICKS rand()是非确定性函数,而在用户定义函数中只能调用确定性函数。 请教SQL语句 一简单触发器怎么写? sql 语句,帮忙想想啊 简单列变行? 请问查询结果为1后更新。 SQL2000 DTS包的密码忘记了,有办法吗? 一个奇怪的问题,希望大侠们指交 DTS的计划任务从远程ORACLE自动导入数据到本地SQL SERVER2000 vfp独占问题 求助!服务器突然断电,SQL Server居然不能开动事务机制了 存储过程问题 主键,唯一约束键的问题
用户定义函数中不允许使用会对每个调用返回不同数据的内置函数。用户定义函数中不允许使用以下内置函数:@@CONNECTIONS @@PACK_SENT GETDATE
@@CPU_BUSY @@PACKET_ERRORS GetUTCDate
@@IDLE @@TIMETICKS NEWID
@@IO_BUSY @@TOTAL_ERRORS RAND
@@MAX_CONNECTIONS @@TOTAL_READ TEXTPTR
@@PACK_RECEIVED @@TOTAL_WRITE
查看联机帮助
不允许在用户定义函数主体中内置不确定函数;这些不确定函数如下:@@CONNECTIONS
@@TOTAL_ERRORS
@@CPU_BUSY
@@TOTAL_READ
@@IDLE
@@TOTAL_WRITE
@@IO_BUSY
GETDATE
@@MAX_CONNECTIONS
GETUTCDATE
@@PACK_RECEIVED
NEWID
@@PACK_SENT
RAND
@@PACKET_ERRORS
TEXTPTR
@@TIMETICKS
create view v_getdate
as
select date=getdate()
gocreate function dbo.testdate ()
returns int
as
begin
------------------------
declare @a datetime
select @a = date from v_getdate
-------------------------
return 1
end
gogetdate()是不确定函数,而用户定义函数中不允许使用不确定函数.使用一个视图中转一下即可,参考我上面的.
注;以上是引用函数内部BEGIN...END 块中的语句不能有任何副作用。函数副作用是指对具有函数外作用域(例如数据库表的修改)的资源状态的任何永久性更改。函数中的语句唯一能做的更改是对函数上的局部对象(如局部游标或局部变量)的更改。不能在函数中执行的操作包括:对数据库表的修改,对不在函数上的局部游标进行操作,发送电子邮件,尝试修改目录,以及生成返回至用户的结果集。在函数中不可使用exec,也就不能执行存储过程(当然也包括SP_打头的系统存储过程),不能使用动态SQL;函数中不能更改函数以外的对象,如对Table的Insert\Delete\Update;
不能在函数中执行的操作包括:对数据库表的修改,对不在函数上的局部游标进行操作,发送电子邮件,尝试修改目录,以及生成返回至用户的结果集。
@@CPU_BUSY @@TOTAL_READ
@@IDLE @@TOTAL_WRITE
@@IO_BUSY GETDATE
@@MAX_CONNECTIONS GETUTCDATE
@@PACK_RECEIVED NEWID
@@PACK_SENT RAND
@@PACKET_ERRORS TEXTPTR
@@TIMETICKS