Как возвратить временную таблицу из хранимой процедуры

если можно превратить алгоритм расчета во что-то, что можно назвать многократно, Вы могли выпустить управление, поддерживают браузер через короткие интервалы при помощи setTimeout с коротким значением тайм-аута.

, Например, что-то вроде этого...

function doCalculation()
{
   //do your thing for a short time

   //figure out how complete you are
   var percent_complete=....

   return percent_complete;
}

function pump()
{
   var percent_complete=doCalculation();

   //maybe update a progress meter here!

   //carry on pumping?
   if (percent_complete<100)
   {
      setTimeout(pump, 50);
   }
}

//start the calculation
pump();

15
задан Grace Note 11 May 2010 в 16:05
поделиться

3 ответа

Какую версию SQL Server вы используете? В SQL Server 2008 вы можете использовать Параметры таблиц и типы таблиц .

Альтернативный подход - вернуть табличную переменную из пользовательской функции, но я не большой поклонник этого метода.

Вы можете найти пример здесь

6
ответ дан 1 December 2019 в 01:17
поделиться

Тип возврата процедуры - int.

Вы также можете возвращать наборы результатов (как и ваш код в настоящее время) (хорошо, вы также можете отправлять сообщения, которые являются строками)

Это единственное «возвращение», которое вы можете получить. Хотя вы можете добавлять в процедуру параметры, возвращающие табличное значение (см. BOL), они только вводятся.

Изменить:

(Или, как упоминалось в другом плакате, вы также можете использовать табличную функцию, а не процедуру )

0
ответ дан 1 December 2019 в 01:17
поделиться

Взгляните на этот код,

CREATE PROCEDURE Test

AS
    DECLARE @tab table (no int, name varchar(30))

    insert @tab  select eno,ename from emp  

    select * from @tab
RETURN
27
ответ дан 1 December 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: