您的位置:首页 > 数据库

简单的SQL存储过程

2010-03-26 15:02 330 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: