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