---生成测试表T
游标变量用法经典if exists(select 1 from sysobjects where Name=N'T' and objectProperty(ID,N'IsUserTable')=1)
游标变量用法经典    drop table T
游标变量用法经典go
游标变量用法经典select top 5 ID,Name into T from sysobjects
游标变量用法经典go
游标变量用法经典方法1:
游标变量用法经典
游标变量用法经典--创建输出游标变量的存储过程:
游标变量用法经典
游标变量用法经典create procedure P_cursor(
游标变量用法经典                            @Roy_Test cursor varying output
游标变量用法经典                        )
游标变量用法经典as
游标变量用法经典
游标变量用法经典set @Roy_Test=cursor global for
游标变量用法经典select 
游标变量用法经典    ID,Name
游标变量用法经典from 
游标变量用法经典    T
游标变量用法经典open @Roy_Test
游标变量用法经典if @@error<>0
游标变量用法经典    return 1
游标变量用法经典go
游标变量用法经典
游标变量用法经典--调用的存储过程:
游标变量用法经典
游标变量用法经典create procedure  P_cursor2
游标变量用法经典as
游标变量用法经典declare @Roy_Test cursor,
游标变量用法经典        @ID int,@Name sysname
游标变量用法经典
游标变量用法经典exec P_cursor @Roy_Test=@Roy_Test output
游标变量用法经典
游标变量用法经典IF Cursor_Status('variable', '@Roy_Test') <= 0
游标变量用法经典    return 1
游标变量用法经典
游标变量用法经典fetch next from @Roy_Test into @ID,@Name
游标变量用法经典while @@fetch_status=0
游标变量用法经典    begin
游标变量用法经典        print 'ID='+rtrim(@ID)+',Name='+@Name
游标变量用法经典        fetch next from @Roy_Test into @ID,@Name
游标变量用法经典    end
游标变量用法经典close @Roy_Test
游标变量用法经典deallocate @Roy_Test
游标变量用法经典go
游标变量用法经典
游标变量用法经典
游标变量用法经典exec P_cursor2        --查看结果
游标变量用法经典
--drop proc P_cursor,P_cursor2,P2_cursor,P2_cursor2

 

http://blog.csdn.net/roy_88/article/details/1875264

相关文章:

  • 2022-12-23
  • 2021-09-18
  • 2021-10-27
  • 2021-08-31
  • 2021-07-10
  • 2021-12-24
  • 2022-12-23
  • 2021-12-20
猜你喜欢
  • 2021-12-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-26
  • 2022-12-23
相关资源
相似解决方案