create function tt (@tt varchar(5))
RETURNS varchar(5)
as
begin
set @tt=(select convert(varchar(5),dateadd(minute,rand()*60, '08:00 '),14))
return(@tt)
end
会出现
服务器: 消息 443,级别 16,状态 1,过程 tt,行 5
在函数内不正确地使用了 'rand '。
------解决方案--------------------
rand()*60改成round(rand()*60,0)
------解决方案--------------------
把那个添加至提取出来,加个变量
declare @timetoadd int
set @timetoadd =round(rand()*60,0)
set @tt=(select convert(varchar(5),dateadd(minute,@timetoadd, '08:00 '),14))
------解决方案--------------------
up
------解决方案--------------------
return(@tt) 换成return:)
------解决方案--------------------
create function tt (@tt varchar(5))
RETURNS varchar(5)
AS
BEGIN
SELECT @tt=CONVERT(VARCHAR(5),DATEADD(minute,ROUND(RAND()*60,0), '08:00 '),14)
RETURN @tt
END
------解决方案--------------------
还真是没法通过,
还是加变量把~
------解决方案--------------------
不允许在用户定义函数主体中内置不确定函数;这些不确定函数如下:
@@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
------解决方案--------------------
10楼的wangdehao已经说过了,rand()是不确定函数,自定义函数内不能使用不确定函数