首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

函数的有关问题,菜鸟的

2012-03-19 
函数的问题,初学者的createfunctiontt(@ttvarchar(5))RETURNSvarchar(5)asbeginset@tt(selectconvert(var

函数的问题,初学者的
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()是不确定函数,自定义函数内不能使用不确定函数

热点排行