• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

在函数内不正确地使用了 'rand'???

SinGooCMS 2008-03-23 10:32:14
create function initnum()
returns int
as
begin
declare @revalue int
select @revalue=convert(int,rand()*10)
return @revalue
end

自定义了一个函数,想要返回一个随机的整数,这样写提示:在函数内不正确地使用了 'rand'

如果单独写

declare @revalue int
select @revalue=convert(int,rand()*10)
print @revalue

就没有问题.不知道是什么原因?
...全文
214 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
SinGooCMS 2008-03-23
thank you!!

回复
liangCK 2008-03-23
使用视图辅助..

--取得随机数的视图
CREATE VIEW v_RAND
AS
SELECT re=STUFF(RAND(),1,2,'')
GO

--生成随机编号的函数
CREATE FUNCTION f_RANDBH(@BHLen int)
RETURNS varchar(50)
AS
BEGIN
DECLARE @r varchar(50)
IF NOT(ISNULL(@BHLen,0) BETWEEN 1 AND 50)
SET @BHLen=10

lb_bh: --生成随机编号的处理
SELECT @r=re FROM v_RAND
WHILE LEN(@r)<@BHLen
SELECT @r=@r+re FROM v_RAND
SET @r=LEFT(@r,@BHLen)

--检查编号在基础数据表中是否存在
IF EXISTS(SELECT * FROM tb WITH(XLOCK,PAGLOCK) WHERE BH=@r)
GOTO lb_bh

RETURN(@r)
END
GO
回复
liangCK 2008-03-23
函数内不能用rand()等函数..

回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-23 10:32
社区公告
暂无公告