---生成测试表Tifexists(select1fromsysobjectswhereName=N'T'andobjectProperty(ID,N'IsUserTable')=1)droptableTgoselecttop5ID,NameintoTfromsysobjectsgo方法1:--创建输出游标变量的存储过程:createprocedureP_cursor(@Roy_Testcursorvaryingoutput)asset@Roy_Test=cursorglobalforselectID,NamefromTopen@Roy_Testif@@error<>0return1go--调用的存储过程:createprocedureP_cursor2asdeclare@Roy_Testcursor,@IDint,@NamesysnameexecP_cursor@Roy_Test=@Roy_TestoutputIFCursor_Status('variable','@Roy_Test')<=0return1fetchnextfrom@Roy_Testinto@ID,@Namewhile@@fetch_status=0beginprint'ID='+rtrim(@ID)+',Name='+@Namefetchnextfrom@Roy_Testinto@ID,@Nameendclose@Roy_Testdeallocate@Roy_TestgoexecP_cursor2--查看结果/**//*ID=1,Name=sysobjectsID=2,Name=sysindexesID=3,Name=syscolumnsID=4,Name=systypesID=6,Name=syscomments*/gocreateprocedureP2_cursor(@Flagbit)asdeclare@roy_cursorcursor,@IDint,@Namesysnameif@Flag=0set@roy_cursor=Roy_cursorelsereturn1--可以定义其它游标open@roy_cursorfetch@roy_cursorinto@ID,@Namewhile@@fetch_status=0beginprint'ID='+rtrim(@ID)+',Name='+@Namefetch@roy_cursorinto@ID,@Nameendclose@roy_cursorif@Flag=0deallocateRoy_cursorelsereturn1----可以定义其它游标gocreateprocedureP2_cursor2asexec('declareRoy_cursorcursorglobalforselectID,NamefromT')declare@errorintset@error=@@errorif@error=0execP2_cursor@Flag=0elsereturn@errorgoexecP2_cursor2--查看结果/**//*ID=1,Name=sysobjectsID=2,Name=sysindexesID=3,Name=syscolumnsID=4,Name=systypesID=6,Name=syscomments*/删除测试:--droptableT--dropprocP_cursor,P_cursor2,P2_cursor,P2_cursor2