Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从另一个存储过程捕获/使用/处理存储过程中的多个数据集_Sql_Sql Server_Stored Procedures - Fatal编程技术网

Sql 从另一个存储过程捕获/使用/处理存储过程中的多个数据集

Sql 从另一个存储过程捕获/使用/处理存储过程中的多个数据集,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,是否可以使用存储过程返回的数据集?基本上我有一个存储过程(我们称它为SP_1),它调用另一个存储过程(我们称它为SP_2)。SP_2有5条左右的select语句。我要做的是处理SP_1中的每个select语句。基本上是为了操纵数据或其他什么,但我不知道如何获得它 让我展示一下我在做什么,这可能会让事情变得更清楚 CREATE PROCEDURE [dbo].[usp_1] AS exec usp_2 //How do I store the multiple select statements

是否可以使用存储过程返回的数据集?基本上我有一个存储过程(我们称它为SP_1),它调用另一个存储过程(我们称它为SP_2)。SP_2有5条左右的select语句。我要做的是处理SP_1中的每个select语句。基本上是为了操纵数据或其他什么,但我不知道如何获得它

让我展示一下我在做什么,这可能会让事情变得更清楚

CREATE PROCEDURE [dbo].[usp_1]
AS
exec usp_2
//How do I store the multiple select statements results in this stored proc?

为了工作,SP_2中的所有选择都需要返回相同数量的兼容列。如果一个返回2列,另一个返回5列,另一个返回10列,那么它将不起作用

如果每个SELECT返回相同数量的列,并且数据类型一致,那么您最好在SP_1中使用这种方法

CREATE TABLE #test (Col1 VARCHAR(10), Col2 VARCHAR(10))
INSERT #test
EXECUTE SP2 -- all resultsets return 2 VARCHAR columns
-- Now use #test which should contain all the combined results from SP2

但是,如果它们都返回不同的列,则无法执行此操作。您需要将每个select分解为它自己的存储过程,并单独调用每个存储过程。SP2也将更改为调用这些子存储过程。

好的,谢谢。在这种情况下,它不会返回相同的列。谢谢你的回答。