Вызов двух уровней хранимой процедуры - PullRequest
0 голосов
/ 30 сентября 2019

В SQL Server 2014 у меня есть две хранимые процедуры. Один вызывает другой с помощью команды INSERT.

Я хочу вызвать верхнюю хранимую процедуру, чтобы получить ее таблицу результатов. Однако я получаю сообщение об ошибке:

Сообщение 213, Уровень 16, Состояние 7, Процедура HelloWorld, Строка 23
Имя столбца или количество предоставленных значений не соответствует определению таблицы.

Это пример моего завершенного кода:

1-я хранимая процедура:

ALTER PROCEDURE [dbo].[HelloWorld_2]
    @aaa VARCHAR(20)
AS
BEGIN
    SELECT 1 AS col1, @aaa AS col2
END

2-я хранимая процедура (она вызывает 1-ю хранимую процедуру)

ALTER PROCEDURE [dbo].[HelloWorld]
    @aaa VARCHAR(20)
AS
BEGIN
    DECLARE @temp TABLE(col1 INT, col2 VARCHAR(20))

    INSERT INTO @temp
        EXEC [HelloWorld_2] @aaa

    SELECT *, 'patata' 
    FROM @temp
END

SQL, который мне нужно выполнить (он вызывает 2-ю хранимую процедуру)

DECLARE @temp TABLE(col1 INT, col2 VARCHAR(20), col3 VARCHAR(20))

INSERT INTO @temp
    EXEC HelloWorld 3

Возвращаемые значения должны быть таблицей с 3 столбцами и 1 строкой. Но эта ошибка появляется:

Имя столбца или количество предоставленных значений не соответствует определению таблицы

Однако временная таблица соответствует порядку столбца и значениям ...

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