Поймать / работать с / обрабатывать несколько наборов данных в хранимой процедуре из другой хранимой процедуры - PullRequest
0 голосов
/ 23 февраля 2010

Можно ли работать с возвращенными наборами данных из хранимой процедуры? В основном у меня есть хранимая процедура (давайте назовем ее SP_1), и она вызывает другую хранимую процедуру (давайте назовем ее SP_2). SP_2 имеет 5 или около того операторов выбора. То, что я хочу сделать, это обработать каждый оператор выбора внутри SP_1. В основном, чтобы манипулировать данными или что-то еще, но я не знаю, как получить его.

Позвольте мне показать, что я делаю, и это может прояснить ситуацию

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

1 Ответ

2 голосов
/ 23 февраля 2010

Чтобы работать, все SELECT в 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

Однако, если все они возвращают разные столбцы, вы не сможете этого сделать. Вам нужно было бы разбить каждого отдельного выбора на его собственный sproc и вызывать каждого независимо. SP2 изменится и вызовет эти вспомогательные sprocs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...