怎么在存储过程中生成一个随机数并且不能重复,最后返回这个随机数
如何在存储过程中生成一个随机数并且不能重复,最后返回这个随机数
我想用一个存储过程做以下的操作:
create proc p_rand
@rand int output
as
begin
---这里开始写内容
end
1、在sql中产生一个五位数的随机数
set @rand=convert(int, 100000*rand())
2、产生的随机数放入表中,这个随机数不能重复,如果重复了就重新生成
表:randTable,字段 randNumber
3、符合条件的随机数要返回
请各位高手帮忙解决一下。有点急。。。(*^__^*) ……。。谢谢
------解决方案--------------------
create proc p_rand
@rand int output
as
begin
set @rand=convert(int, 100000*rand())
if @rand between 10000 and 99999 and not exists(select 1 from randTable where randNumber = @rand)
begin
insert into randTable values(@rand)
end
else
set @rand = 0
end
------解决方案--------------------
------解决方案--------------------
我想用一个存储过程做以下的操作:
create proc p_rand
@rand int output
as
begin
---这里开始写内容
end
1、在sql中产生一个五位数的随机数
set @rand=convert(int, 100000*rand())
2、产生的随机数放入表中,这个随机数不能重复,如果重复了就重新生成
表:randTable,字段 randNumber
3、符合条件的随机数要返回
请各位高手帮忙解决一下。有点急。。。(*^__^*) ……。。谢谢
------解决方案--------------------
create proc p_rand
@rand int output
as
begin
set @rand=convert(int, 100000*rand())
if @rand between 10000 and 99999 and not exists(select 1 from randTable where randNumber = @rand)
begin
insert into randTable values(@rand)
end
else
set @rand = 0
end
------解决方案--------------------
------解决方案--------------------
- SQL code
create proc p_rand @rand int output as begin --这里开始写内容 declare @a as int=1 WHILE @a=1 BEGIN SET @rand=convert(int, 100000*rand()) IF NOT EXISTS(SELECT 1 FROM TB WHERE 列=@rand) BEGIN INSERT INTO TB(列) SELECT @rand select @rand --返回随即数.过程没有return语句.直接select就返回了 SET @a=2 END END END