Могу ли я рассматривать результаты хранимой процедуры как таблицу? - PullRequest
3 голосов
/ 08 января 2011

Можно ли сделать что-то подобное в SQL Server 2005?

WITH tmpTable AS (EXEC spWhatever)

Или каким-либо другим способом я могу запросить данные, возвращаемые из sp? Спасибо !!!

Ответы [ 3 ]

5 голосов
/ 08 января 2011

Temp table:

CREATE TABLE #foo (col1 int, col2 char(10), ...)

INSERT #foo 
EXEC myproc

Или петля (не уверен, что это все еще работает).Изменить: Может быть OPENROWSET в соответствии с ответом SQLMenace

SELECT * FROM OPENQUERY (MyServername, 'USE MyDB EXEC myproc')
4 голосов
/ 08 января 2011

только с запросом обратной связи, если вы сначала не хотите создавать таблицу, см. Здесь: Сохранение вывода хранимой процедуры в таблице без создания таблицы

Пример

      SELECT * INTO #TempSpWho
            FROM OPENROWSET ('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;',
    'set fmtonly off exec master.dbo.sp_who')

SELECT * FROM #TempSpWho
1 голос
/ 08 января 2011

насколько я знаю, ты не можешь. Но вы можете попробовать использовать пользовательские функции (UDF) вместо SP, если вы сделаете это, вы можете использовать его как таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...