У мене зберігається процедура, яка повертає 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. Повторне позначення.