2014-09-09 3 views
3

Существует хранимая процедура sp и таблица с переменной @tblВставка в таблицу из хранимой процедуры с различными версиями

Insert into @tbl 
    Exec sp 

Над отлично работает на начальном этапе.

Мы изменили вывод хранимой процедуры и добавили дополнительные выходные столбцы. Вышеприведенный оператор вставки не работает со второй версией хранимой процедуры.

выше SQL должен работать с версией 1 sp и версии 2 sp

Что можно сделать?

SQL Server не предоставляет возможность указать имена столбцов, при этом вкладыш из sp выхода

+0

Не знаете, почему кто-то проголосует за него, это очень хороший вопрос. – Donal

ответ

6

Единственный способ сделать это состоит в использовании EXECUTEWITH RESULT SETS, чтобы определить точные столбцы для возврата из хранимая процедура. Это даст вам возможность указывать имена столбцов для вставки в переменную таблицы из вывода хранимой процедуры.

Insert into @tbl(col1, col2, col3) EXECUTE sp 
WITH RESULT SETS (
    (col1 INT, 
    col2 INT, 
    col3 nvarchar(50)) 
) 

Для получения дополнительной информации см. here.

Смежные вопросы