怎么存储过程返回的数据集进行 “进一步操作”

如何存储过程返回的数据集进行 “进一步操作”





IF(OBJECT_ID('test') IS NOT NULL) 
DROP TABLE test 

CREATE TABLE test(Name VARCHAR(10),sex int)
INSERT test 
VALUES
('zhangsan',1),
('lisi',0),
('wangwu',1)
 GO
 
IF(OBJECT_ID('usp_GetStudents') IS NOT NULL)
 DROP PROC usp_GetStudents
go
CREATE PROC usp_GetStudents
as
BEGIN
SELECT * FROM test 
END
go

--新的表结构,增加了一个自动增长列 字段 id
DECLARE @test2 TABLE (id int identity(1,1),Name VARCHAR(10),sex int)

--?? 这里如果对于存储过程返回的数据集进行操作
INSERT test2
exec usp_GetStudents

最后要求结果:
1 zhangsan 1
2 lisi 0
3 wangwu 1

question:
1.我希望能够找到一种便捷的方式对于 存储过程返回的数据集进行操作
2.如果使用
   insert  into @table1 exec test1 2 的方法,获取table以后,再创建一个table2把 table1中的数据导入,
  这样的中转方式,是否会耗费较多内存?
 

------解决方案--------------------
要么就存储过程包存储过程,要么插入表里面再操作
------解决方案--------------------
你的方法是对的 就是建立一个表 然后 INSERT INTO TB EXEC...
------解决方案--------------------
这个跟SQL Server没关系吧。难道Oracle就可以?