sqlserver 游标

declare cursor_name  --游标名称,唯一标识
[insensitive] [scroll] cursor 
for
select_statement --查询语句
[for {read only| update [of column_name [,...n]]}]

/*insensitive
告诉DBMS产生查询结果的临时副本,而不是使用指针指向数据库表中源数据。
指定insensitive时,对底层表任何改动都不会反映到游标数据中。反之,对底层表的改动都会反映到游标数据中。
insensitive游标是只读的,因此不能修改其内容,也不能通过它修改底层表数据。
scroll
表明所有的提取操作,即fetch选项(具体选项在下文提到),若不指定只能进行next提取。
read only
设置游标数据只读,指定read only后,对底层表的改动不会更新其游标数据。
update [of column_name[,...n]]
定义在游标中可被更改的列。如果只指定了update,表示所有列都可以更新。*/
--创建游标
DECLARE AGNTNM CURSOR Local for
	select agntnum from [dbo].[DM_LA_HSAGPF] group by agntnum;
	DECLARE DM_HSAGPF CURSOR Local for

open AGNTNM; --开游标
	FETCH NEXT FROM AGNTNM INTO @agtnum; --获取游标的下一行
	WHILE ( @@fetch_status = 0 )
	begin
		set @MAX_SEQ=@MAX_SEQ + 1;
		insert into @POS_SEQ (POS_SEQ,agntnum,RECORDTYPE) select case when seqnum = null                     
        then @MAX_SEQ else seqnum end,@agtnum,'AGT' 
        from DM_LA_MASTER where agntnum=@agtnum;

		FETCH NEXT FROM AGNTNM INTO @agtnum  --获取游标的下一行
	end
	CLOSE AGNTNM --关闭游标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值