存储过程使用了游标 想最终查询结果是使用游标后返回的所有结果放在一个表里 --测试数据 if not object_id(N'Tempdb..#T') is null drop table #T Go Create table #T([id] int,[name] nvarchar(22)) Insert #T select 1,N'张三' union all select 2,N'李四' union all select 3,N'王五' union all select 4,N'赵六' Go --测试数据结束 --select*from #t -- --创建一个游标 declare my_cursor cursor for --my_cursor为游标的名称,随便起 select id,name from #T --这是游标my_cursor的值,这里随便发挥看业务场景 --打开游标 open my_cursor --没什么好说的 --变量 declare @id int --声明变量 ‘declare’为声明变量 ‘@name’为变量名称 后面为变量类型 declare @name varchar(50) --这里是两个变量用来接收游标的值 --循环游标 fetch next from my_cursor into @id,@name --获取my_cursor的下一条数据,其中为两个字段分别赋值给@id,@name while @@FETCH_STATUS=0 --假如检索到了数据继续执行 begin print(@name) --print()打印变量 随便发挥 select * from #T where id=@id --这里是具体业务了,随便发挥。而我这是又执行了一次查询 fetch next from my_cursor into @id,@name --获取下一条数据并赋值给变量 end--关闭释放游标 close my_cursor deallocate my_cursor |