Create Procedure PrGetMoreName AS --AS不能少 --创建临时表(存储过程创建的临时表,执行完自动删除) Create table #temp ( fzgbh varchar(8), fzgxm varchar(10) ) Declare @zgbh varchar(8),@zgxm varchar(10) --声明一个游标 Declare Gy_cursor cursor for select fzgbh,fzgxm from zd_zggl --打开游标 Open Gy_cursor fetch next from GY_cursor into @zgbh,@zgxm While @@fetch_status=0 --有记录 Begin Insert into #temp(fzgbh,fzgxm) values (@zgbh,@zgxm) fetch next from Gy_cursor into @zgbh,@zgxm End select * from #temp Close Gy_cursor Deallocate Gy_cursor --执行存储过程 execute PrGetMoreName 生成随机姓名的存储过程 Create Procedure PrGetNames AS Create table tb_t ( mingzi varchar(10) ) DECLARE @LN VARCHAR(300),@MN VARCHAR(200),@FN VARCHAR(200) DECLARE @LN_N INT,@MN_N INT,@FN_N INT SET @LN='甘李王张刘陈杨黄赵周吴徐孙朱马胡郭林何高梁郑罗宋谢唐韩曹许邓萧冯曾程蔡彭潘袁于董余苏叶吕魏蒋田杜丁沈姜范江傅钟卢汪戴崔任陆廖姚方金邱夏谭韦贾邹石熊孟秦阎薛侯雷白龙段郝孔邵史毛常万顾赖武康贺严尹钱施牛洪龚' SET @MN='德绍宗邦裕傅家積善昌世贻维孝友继绪定呈祥大正启仕执必定仲元魁家生先泽远永盛在人为任伐风树秀文光谨潭棰洁寅' SET @FN='丽云峰磊亮宏红洪量良梁良粮靓七旗奇琪谋牟弭米密祢磊类蕾肋庆情清青兴幸星刑' SET @LN_N=LEN(@LN) SET @MN_N=LEN(@MN) SET @FN_N=LEN(@FN) DECLARE @TMP VARCHAR(1000),@I INT SET @I=1 WHILE @I<=100 BEGIN SET @TMP=CAST(SUBSTRING(@LN,CAST(RAND()*@LN_N AS INT),1) AS VARCHAR) SET @TMP=@TMP+CAST(SUBSTRING(@MN,CAST(RAND()*@MN_N AS INT),1) AS VARCHAR) SET @TMP=@TMP+CAST(SUBSTRING(@FN,CAST(RAND()*@FN_N AS INT),1) AS VARCHAR) INSERT INTO tb_t(mingzi)VALUES(@TMP) SET @I=@I+1 END select distinct mingzi from tb_t