MS SQL Server2005存储过程、游标、游标嵌套综合例子

MS SQL Server2005存储过程、游标、游标嵌套综合例子:

放在这里备忘》》》

Java代码  收藏代码
    1. create proc decisionPathRefSchemes  
    2. as  
    3. begin  
    4.     DECLARE @pathId varchar(64)  
    5.     DECLARE @schemeId varchar(64)  
    6.     DECLARE @flag integer  
    7.     DECLARE @seq integer  
    8.     DECLARE mycursor cursor    
    9.         for select id from imps_pd_decision_path where surfaceType = '沥青路面' and roadGrade = '高速、一级、二级'  
    10.     DECLARE mycursor2 cursor    
    11.         for select id from imps_pd_decision_scheme   
    12.           
    13.     set @seq = 10000  
    14.       
    15.     open mycursor   
    16.     fetch next from mycursor into @pathId  
    17.     while @@fetch_status=0  
    18.     begin   
    19.         set @flag = 0  
    20.         select @flag=1 from imps_pd_path_ref_scheme where pathId=@pathId  
    21.         print @pathId  
    22.         print @flag  
    23.         if @flag = 0   
    24.         begin  
    25.             /*使用游标嵌套*/  
    26.             open mycursor2  
    27.             fetch next from mycursor2 into @schemeId  
    28.             while @@fetch_status=0  
    29.             begin  
    30.                 insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,@schemeId)  
    31.                 set @seq = @seq + 1   
    32.                 fetch next from mycursor2 into @schemeId  
    33.             end  
    34.             close mycursor2  
    35.               
    36.             /* 
    37.             不用游标时: 
    38.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6cd457b0001') 
    39.             set @seq = @seq + 1 
    40.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6ce234a0003') 
    41.             set @seq = @seq + 1 
    42.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6cf087c0005') 
    43.             set @seq = @seq + 1 
    44.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6cf4b230006') 
    45.             set @seq = @seq + 1 
    46.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6cf95aa0007') 
    47.             set @seq = @seq + 1 
    48.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6cfd5920008') 
    49.             set @seq = @seq + 1 
    50.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d023160009') 
    51.             set @seq = @seq + 1 
    52.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d06b4b000a') 
    53.             set @seq = @seq + 1 
    54.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d2c87a000b') 
    55.             set @seq = @seq + 1 
    56.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d2f900000c') 
    57.             set @seq = @seq + 1 
    58.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d32cf1000d') 
    59.             set @seq = @seq + 1 
    60.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d36bef000e') 
    61.             set @seq = @seq + 1 
    62.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d3ce44000f') 
    63.             set @seq = @seq + 1 
    64.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d419b50010') 
    65.             set @seq = @seq + 1 
    66.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d541bc0013') 
    67.             set @seq = @seq + 1 
    68.             insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52afa3280012afae7baaa0001') 
    69.             set @seq = @seq + 1 
    70.             */  
    71.         end  
    72.         fetch next from mycursor into @pathId  
    73.     end  
    74.     /* 嵌套的游标先销毁*/  
    75.     deallocate mycursor2  
    76.     close mycursor  
    77.     /* 外层游标后销毁*/  
    78.     deallocate mycursor  
    79. end  
    80.   
    81. /* 执行存储过程*/  
    82. --exec decisionPathRefSchemes  
    83.   
    84. /* 删除存储过程*/  
    85. --drop proc decisionPathRefSchemes
posted @ 2012-06-07 14:35  左正  阅读(479)  评论(0编辑  收藏  举报