В 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 строкой. Но эта ошибка появляется:
Имя столбца или количество предоставленных значений не соответствует определению таблицы
Однако временная таблица соответствует порядку столбца и значениям ...