自己写的一个使用游标的小例子

游标因效率低下而为人所诟病,但当我们做很多“一次性”的工作的时候,游标还是很方便地,嘿嘿。刚刚用游标解决了一个实际的问题,记录在下,以后备查,也给想用游标的同志提供一个小例子(注释都删掉了哦,大家关注里面的语法就行了):
 1 None.gif DECLARE product_cursor  CURSOR FOR 
 2 None.gifSELECT 
 3 None.gif     VendeeClassID, UserID, VendeeClassCode
 4 None.gifFROM
 5 None.gif     VendeeClass order by UserID
 6 None.gif
 7 None.gifdeclare @UserID  int
 8 None.gifdeclare @ClassCode varchar( 8 )
 9 None.gifdeclare @VendeeClassID  int
10 None.gif
11 None.gifdeclare @globalUserID  int
12 None.gifdeclare @globalCount  int
13 None.gifdeclare @globalClassCode varchar( 8 )
14 None.gif set  @globalUserID  =   - 1
15 None.gif
16 None.gifOPEN product_cursor
17 None.gifFETCH NEXT FROM product_cursor INTO @VendeeClassID, @UserID, @ClassCode
18 None.gifWHILE @@FETCH_STATUS  =   0
19 None.gifBEGIN
20 None.gif      if (@globalUserID  =  @UserID)
21 None.gif       begin       
22 None.gif         set  @globalCount  =  @globalCount + 1
23 None.gif         if (@globalCount > 9 )
24 None.gif          begin
25 None.gif             set  @globalClassCode  =    ' 01 '   +  cast(@globalCount  as  varchar)
26 None.gif          end
27 None.gif         else
28 None.gif          begin
29 None.gif             set  @globalClassCode  =    ' 010 '   +  cast(@globalCount  as  varchar)
30 None.gif          end
31 None.gif         if (@ClassCode  is   null )
32 None.gif            update VendeeClass  set  VendeeClassCode = @globalClassCode where VendeeClassID = @VendeeClassID
33 None.gif       end
34 None.gif      else
35 None.gif       begin
36 None.gif         set  @globalUserID  =  @UserID
37 None.gif         set  @globalCount  =   1 ;
38 None.gif         if (@ClassCode  is   null )
39 None.gif            update VendeeClass  set  VendeeClassCode = ' 0101 '  where VendeeClassID = @VendeeClassID
40 None.gif       end
41 None.gif
42 None.gif     FETCH NEXT FROM product_cursor INTO  @VendeeClassID, @UserID, @ClassCode
43 None.gifEND
44 None.gif
45 None.gifCLOSE product_cursor
46 None.gifDEALLOCATE product_cursor

转载于:https://www.cnblogs.com/xingyukun/archive/2007/04/19/719828.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值