sqlserver 游标操作,给表添加一行行号列,以及可读可写游标定义

   
if (object_id('proc_temp', 'P') is not null)
    drop proc proc_temp
go
create proc proc_temp
with recompile
as
		DECLARE @nLine int,@courntNum int ;
		DECLARE @cur cursor;
	  set @cur = cursor forward_only  for
    SELECT id from BaseDimValue for update of id
    open @cur;
		
		set @nLine = 0;
    set @courntNum = (select count(*) from BaseDimValue);
    fetch next from @cur ;
		while @nLine <=@courntNum --@@fetch_status = 0
		begin
      set @nLine = @nLine + 1;
      update BaseDimValue set id = @nLine  where current of @cur;
			print 'ID值为'+ convert(varchar, @nLine);
			fetch next from @cur ;
		end
    close @cur;
    set @nLine = 0;
    deallocate @cur;
go

exec proc_temp ;



1.定义一个标准游标:

declare mycursor cursor for select * from yuangong
2.定义一个只读游标:
declare mycursor cursor for select * from yuangong for read only

3.定义一个可写游标:
declare mycursor1 cursor for select * from yuangong for update of
姓名,性别,年龄,基本工资,奖金,所得税,应发工资
注: scroll 只能对只读游标起作用


游标定义 请参照 http://www.cnblogs.com/Dlonghow/archive/2009/05/14/1456910.html

猜你喜欢

转载自annan211.iteye.com/blog/2276984
今日推荐