Ответ 1
Изменил вопрос в этой теме: Может ли хранимая процедура/функция возвращать таблицу?. Очевидно, что это невозможно без использования для временных таблиц.
Скажем, у нас есть хранимая процедура, выбирая что-то из таблицы:
CREATE PROCEDURE database.getExamples() SELECT * FROM examples;
Как я могу использовать результат из этой процедуры в более позднем выборе? (Я пробовал
SELECT * FROM (CALL database.getExamples())
но без успеха.) Должен ли я использовать SELECT... INTO outVariable в процедуре? Или я должен использовать функцию, возвращающую таблицу вместо?
Изменил вопрос в этой теме: Может ли хранимая процедура/функция возвращать таблицу?. Очевидно, что это невозможно без использования для временных таблиц.
CREATE TABLE #TempTable
(OID int IDENTITY (1,1),
VAr1 varchar(128) NOT NULL,
VAr2 varchar(128) NOT NULL)
Populate temporary table
INSERT INTO #TempTable(VAr1 , VAr2 )
SELECT * FROM examples
В сервере SQL вы можете сделать SELECT * FROM database.getExamples()
Если вы хотите повторно использовать "процедуру", тогда да, я бы поместил ее в функцию с табличной оценкой.
В противном случае вы можете просто выбрать SELECT INTO в #temporary таблице внутри хранимой процедуры.