欢迎来到天天文库
浏览记录
ID:12040581
大小:29.00 KB
页数:3页
时间:2018-07-15
《sqlserver存储过程批量生成随机字符串》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、需求:利用SQLServer存储过程,批量生成随机的字符串,字符串为8位字符或数字组成,前两位为固定的字符“GC”。如:GC022Uxf实现:执行下面的代码即可产生需要的随机字符串,具体说明已经在代码后标注。ifexists(selectnamefromsysobjectswherename='GetRandStr'ANDtype='P')--如果在已知数据库中存在GetRandStr这个存储过程,则删除(为了方便反复执行这段代码)dropprocGetRandStrgocreateprocdbo.GetRandStr(@countint,@novarchar(8)outp
2、ut)--@count是随机字符串个数,@no则是最终生成的随机字符串asbegindeclare@randomstrvarchar(100),@charpoolvarchar(62)--@randomstr是每次随机的字符累加的值,@charpool是产生随机字符的字符序列declare@iinteger,@counterinteger--@i是循环次数,@counter是产生随机字符的位置set@charpool='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'--设置随机序列set@i=1
3、--循环初始值set@randomstr=''--随机字符串初始值while@i<=@countbeginhere:set@counter=CAST(RAND()*100/1.61ASinteger)--产生随机字符位置(0-62的整数)if@counter<1gotohere--如果@counter=0就重新生成随机数set@randomstr=@randomstr+substring(@charpool,@counter,1)--在随机序列中找到生成的随机位置的字符set@i=@i+1--循环递增endset@no='GC'+left(@randomstr,isnull
4、(@count,6))--最后将生成的六个随机字符加上两个固定字符'GC',组成所需的随机字符串returnendgo调用:比如要生成10个随机字符串declare@intintset@int=1while@int<=10begindeclare@somethingvarchar(8)execGetRandStr6,@somethingoutput--调用存储过程print@something--输出随机字符串set@int=@int+1endgo更多精彩请登陆:http://blog.sina.com.cn/xu3180497
此文档下载收益归作者所有