存储过程随机数
Ⅰ 传奇的dbc2000数据库sql命令如何生成随机数,尝试了sql的rand()等随机函数,都提示不支持,请大神指点
不用update,你看这样行不,不行的话就参考下吧---1新建一个存储过程createproc[dbo].[Number]asbegincreatetable#xuhao(Numnvarchar(15))declare@iint,@tempintselect@i=1while@i
Ⅱ SQL拼接,如何把随机数和字段拼接起来
单独一句sql够呛。
创建测试表,插入数据:
createtabletabpart$
(DATAOBJ#varchar2(4));
insertintotabpart$values('1234');
insertintotabpart$values('5678');
insertintotabpart$values('2222');
insertintotabpart$values('3333');
commit;
执行存储过程:
declare
v_randvarchar2(4);
v_strvarchar2(3);
cursorcuris
selectDATAOBJ#fromtabpart$;
begin
opencur;
loop
fetchcur
intov_rand;
exitwhencur%notfound;
selectdbms_random.string('x',3)intov_strfromal;
dbms_output.put_line(v_str||v_rand);
endloop;
closecur;
end;
结果:
每次执行的结果都不一样,如果非要在表里显示,可建立一个表,将这个结果数据插入到表中,就不赘述了。
Ⅲ SQL中生成100行随机数据,生成的数据格式如下图所示。最好做一个存储过程。
select'201308'+
right('0'+convert(varchar,cast(ceiling(rand(checksum(newid()))*31)asint)),2)+
right('0'+convert(varchar,cast(ceiling(rand(checksum(newid()))*23)asint)),2)+
right('0'+convert(varchar,cast(ceiling(rand(checksum(newid()))*59)asint)),2)+
right('0'+convert(varchar,cast(ceiling(rand(checksum(newid()))*59)asint)),2)
fromspt_valueswheretype='P'andnumber<=99
直接运行,楼上的执行100次太不靠谱了吧,那我要1000条是很耽误时间的
Ⅳ sql server中利用RAND()函数产生一个随机卡号
IF EXISTS(SELECT * FROM sysobjects WHERE name='proc_CardID')
DROP PROCEDURE proc_CardID
GO
CREATE PROCEDURE proc_CardID
@randCardID varchar(19) OUTPUT, --输出参数
@firstNo varchar(10)='1010 3576 ' --输入参数,有默认值
AS
DECLARE @r numeric(15,8) --15位数,保留8位小数
DECLARE @tempStr char(10)
select @r=RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE()))
SET @tempStr=@r
SET @randCardID=@firstNo+SUBSTRING(@tempStr,3,4)+' '+SUBSTRING(@tempStr,7,4)
GO
--测试
DECLARE @mycardID char(19)
EXECUTE proc_CardID @mycardID OUTPUT
print '产生的随机卡号为:'+@mycardID
我用的是存储过程;关键代码就是RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE()))
其他的代码都是修饰
我们学SQL就做的这个,你也在学》》?呵呵
Ⅳ 求教 存储过程 随机函数
哈哈 SQL 函数没有生成随机数的函数。。。
不过在ORACLE里面就可以运用DBMS_RANDOM包生成一个0-1的随机数,,
返回一个2位数。。
select dbms_random.value(10,99) from al;
dbms_random包的具体文本请参考以下:
select text from all_source where name='dbms_random' and type='package' order by line;
Ⅵ oracle 随机生成12位不重复数据,求高手写个存储过程。高分!!!
create or replace procere insert_random_Code(maxNum in number)
as
v_code number;
v_count number;
i number;
begin
i:=0;
for i in 0..maxNum-1 loop
select trunc(dbms_random.value(100000000000,1000000000000)) into v_code from al;
select count(*) into v_count from code_table_01 where code=v_code;
if v_count=0 then
select count(*) into v_count from code_table_02 where code=v_code;
if v_count=0 then
insert into code_table_02(code)values(v_code);
i:=i+1;
end if;
end if;
end loop;
if i=maxNum then
commit;
elsif
roolback;
end if;
end;
求推荐 求采纳 求赞
Ⅶ msSql存储过程,随机生成字段属性。
可以用rand 函数。假设在30个数中随机,可以用
select floor(rand()*30)取得0~29中的随机数,然后取得汉字。
Ⅷ SQL数据库字段的默认随机值
create
table
t(
id
uniqueidentifier
not
null
default(
newid()))
--guid不会重复,36位字符+字母+数字
--全数字
create
table
t(
id
char(10)
not
null
default(
right('0000000000'+rtrim(abs(checksum(newid())))+rtrim(abs(checksum(newid()))),16)))
Ⅸ 如何用存储过程随机产生10000个(0-100)随机数
代码还不少,还是帮你写了吧,呵呵
create table tb_jifen(名次 [int] NOT NULL,成绩[int] not null)
-----------------------------------------------------------
--插入数据:
create procere p_insert
as
begin
set nocount on
declare @i int
set @i=1
while @i<=10000
begin
insert into tb_jifen(名次,成绩)
values(0,round(rand()*100,0))
set @i=@i+1
end
set nocount off
end
-----------------------------------------------------------
--更新名次:
create procere p_update
as
begin
set nocount on
declare @i int,@fen int
set @i=1
declare #my_cur cursor for select 成绩 from tb_jifen group by 成绩 order by 成绩 desc
open #my_cur
fetch next from #my_cur into @fen
while @@fetch_status=0
begin
update tb_jifen set 名次=@i where 成绩=@fen
set @i=@i+1
fetch next from #my_cur into @fen
end
close #my_cur
deallocate #my_cur
set nocount off
end
Ⅹ 数据库怎么让一列生成随机数
可以用存储过程啊
就可以实现啊
语句也行啊
MYSQL语法
SELECTFLOOR(7+(RAND()*6));
你先建立一个表
然后在插入数据
UPDATE `news_conta_all_20141104` SET memo4=CEIL(RAND()*199);