create  procedure [dbo].[show_company_info] asdeclare  @register_address char(100),
         @register_province char(100)
declare  my_cursor   cursor 
for  select top (3) f_register_address,f_register_province from t_company_basic open my_cursorwhile  @@fetch_status = 0begin     fetch my_cursor into @register_address, @register_province   
print  '地址  :'+ @register_address+'省份 :'+@register_province  
print   @@fetch_statusend  close  my_cursor  deallocate my_cursor 
结果:地址  :广东省深圳市罗湖区深南东路178号深圳发展银行大厦                                                     省份 :深圳                                                                                                
0
地址  :中国深圳市盐田区大梅沙万科东海岸裙楼C02                                                             省份 :深圳                                                                                                
0
地址  :广东省深圳市和平路1199号金田大厦23层-26层                                                           省份 :深圳                                                                                                
0
地址  :广东省深圳市和平路1199号金田大厦23层-26层                                                           省份 :深圳                                                                                                
-1
为什么有四条记录结果。

解决方案 »

  1.   

    fetch my_cursor into @register_address, @register_province
    while @@fetch_status = 0begin  
    print '地址 :'+ @register_address+'省份 :'+@register_province 
    print @@fetch_status
    fetch my_cursor into @register_address, @register_province
    end 
      

  2.   

    begin fetch my_cursor into @register_address, @register_province 
    print '地址 :'+ @register_address+'省份 :'+@register_province 
    print @@fetch_status
    fetch NEXT my_cursor into @register_address, @register_province 
    end 
      

  3.   


    --SQL Server 2000
    create procedure [dbo].[show_company_info] 
    as
    begin
        declare @register_address char(100)
                ,@register_province char(100)
        declare my_cursor cursor scroll dynamic for 
        select top 3 f_register_address,f_register_province 
        from t_company_basic     open my_cursor
        fetch next from my_cursor into @register_address, @register_province    while @@fetch_status = 0
        begin 
            print '地址 :'+ @register_address+'省份 :'+@register_province 
            print @@fetch_status
            fetch next from my_cursor into @register_address, @register_province
        end     fetch first from my_cursor into @register_address, @register_province
        close my_cursor 
        deallocate my_cursor 
    end