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