用sql重来没写过for循环,做数据库操作大多都是成批的做处理,也不太理解这个游标,那篇文章中说右边跟SqlDataReader有点像,仔细想想这话也不算错
来一段从A表往B表中插入B表不存在的数据的存储过程:
CREATE proc my_cur
as
begin
declare @name varchar(50), @pwd varchar(50) --声明变量存放数据
declare my_cursor cursor for
select name,pwd from Users--声明游标
open my_cursor --打开游标
FETCH NEXT FROM my_cursor into @name,@pwd --读取数据
while (@@fetch_status=0) --表示状态 int 类型 0 FETCH 语句成功-1 FETCH 语句失败或此行不在结果集中-2 被提取的行不存在
begin
if not EXISTS (select TOP(1)* from userbak where name=@name) --表B中不存在此名字
insert INTO userbak values(@name,@pwd)
FETCH NEXT FROM my_cursor into @name,@pwd
end
close my_cursor --关闭游标
deallocate my_cursor--释放游标
end