У меня есть хранимая процедура, которая возвращает 80 столбцов и 300 строк. Я хочу написать select, который получает 2 из этих столбцов. Что-то вроде
SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
Когда я использовал приведенный выше синтаксис, я получаю ошибку:
"Недопустимое имя столбца".
Я знаю, что самым простым решением было бы изменить хранимую процедуру, но я не написал ее, и я не могу ее изменить.
Есть ли способ сделать то, что я хочу?
-
Я могу создать временную таблицу для ввода результатов, но потому, что есть 80 столбцов, поэтому мне нужно будет создать таблицу столбцов 80 столбцов, чтобы получить 2 столбца. Я хотел избежать отслеживания всех возвращаемых столбцов.
-
Я попытался использовать
WITH SprocResults AS ....
, как предложил Марк, но я получил 2 ошибкиНеправильный синтаксис рядом с ключевым словом 'EXEC'.
Неверный синтаксис рядом с ')'. -
Я попытался объявить переменную таблицы, и я получил следующую ошибку:
Вставить ошибку: имя столбца или количество заданных значений не соответствует определению таблицы
-
Если я попробую
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
Я получаю сообщение об ошибке:Неправильный синтаксис рядом с ключевым словом "exec".