sql for 循环语法案例

           For循环案例

  1. 1.     创建a表,数据如下:

     create table a(

      id   int,

      name  varchar(30)

 

 

Id

Name

1

关羽

500

张飞

1000

赵云

100

马超

200

黄忠

2.创建b表,现要求将a表数据循环插入到b表,每次循环插入一条数据,显示结果如下:

               

Id

Name

1

关羽

500

张飞

1000

赵云

100

马超

200

黄忠

3.因为表中的id不连续,所以我们先要为id进行编号,创建临时表 #c,把a表数据插入到#c,

 

 

select identity(int,0,1) as L,id,name  into #c from a

Select * from #c--查询临时表#c

Drop table #c –删除临时表#c

这是我们id就有相应的编号,如图:

L

Id

Name

1

1

关羽

2

500

张飞

3

1000

赵云

4

100

马超

5

200

黄忠

 

 

4.我们最后把#c表的数据依次循环一条插入到b表

declare @a int

set @a=0

select identity(int,0,1) as L,id,name into #c from a

--select * from  #c

while @a<10

begin

--select * from b

insert into b(id,name ) select id,name  from #c where  L=@a

set @a=@a+1

end

select * from  b

 

5.这时我们就把表a的数据依次循环插入到b表了,如图:

第一次循环插入:                                      

L

Id

Name

1

1

关羽

第二次循环

2

500

张飞

第三次循环

3

1000

赵云

第四次循环

4

100

马超

第五次循环

5

200

黄忠

第六次循环

无数据插入

第七次循环

           无数据插入

第八次循环

           无数据插入

第九次循环

           无数据插入

第十次循环

           无数据插入

 

6.完成的存储过程代码:

create procedure sp_xh

as

 

begin

truncate table b    —-清空b表的记录

declare @a int  --声明变量

set @a=0

select identity(INT,0,1) AS L,id,name  into #c from a

--SELECT * FROM #c

while @a<10  --循环总次数小于10

begin

--select * from b  --查新b表数据

insert into b(id,name ) select id,name   from #c  where  L=@a

set @a=@a+1

 

end

end

 

--exec sp_xh

 

                                                                       

                                                                         

posted @ 2015-11-09 11:36  龙o魂  阅读(1388)  评论(0编辑  收藏  举报