time 
设为首页】【收藏本站
当前位置: 主页 > 数据库 > SQL Server > SQL存储过程 > 通过游标在SQL存储过程中循环

通过游标在SQL存储过程中循环

时间:2010-05-11 23:20 点击:5682次 字体:[ ]




今天有个需求要写一个存储过程,需要从一个表中读取数据到另外一个表中,由于是很多行的数据,所以需要循环,我琢磨了一下,使用了游标,至于使用游标的好坏,还请大家指点,

先建立两个测试表吧:

 


create table testA
(
id
int identity,
userChName
nvarchar(50),
userEnName
nvarchar(50)
)
create table testB
(
id
int identity,
userChName
nvarchar(50),
userEnName
nvarchar(50)
)

表建的比较简单,需要从testA表导入数据到testB表中(大概就这么个意思,表建的比较弱智);

存储过程开始了:

 

存储过程
create proc sp_testCursor

as
declare @userChName nvarchar(500),
@userEnName nvarchar(500)

declare cur cursor for
SELECT userChName, userEnName
FROM testA
open cur
fetch next from cur into @userChName,@userEnName --先去第一条数据
while @userChName is not null and @userEnName is not null and @@fetch_status=0 --结束的条件
begin
insert into testB(userChName, userEnName)values(@userChName,@userEnName )
fetch next from cur into @userChName,@userEnName --取下一条数据,相当于C#中的i++
end
close cur --关闭游标
deallocate cur
go

个人感觉就这个需求,游标还是比较简单的,仔细琢磨一下他和一般编程语言的for循环,while循环是一样的,有一个判断循环调至的条件,有往前走的递增



本文地址 : http://www.fengfly.com/plus/view-175149-1.html
标签: 存储过程 SQL 游标 循环
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: