Поместите набор результатов хранимых процедур в таблицу - любые комбинации, кроме INSERT INTO ... EXEC? - PullRequest
2 голосов
/ 17 марта 2010

Я создаю временную таблицу, которая является результатом набора результатов хранимой процедуры. Сейчас я использую оператор create table, за которым следует insert into....exec.

Она выполняет свою работу, но мне было любопытно, есть ли другие способы сделать это? Хотелось бы, чтобы можно было запустить select into с набором результатов хранимой процедуры, выполняющей роль оператора select, чтобы мне не пришлось заранее писать оператор create (чтобы при изменении столбцов хранимых процедур не нужно никаких модификаций.)

Если есть другие способы, которые могли бы удовлетворить мои потребности, я бы хотел услышать о них. Большое спасибо.

Ответы [ 2 ]

1 голос
/ 17 марта 2010

Один трюк:

SELECT * FROM OPENQUERY(ThisServerName, 'EXEC myDB.dbo.myStoredproc') 

Хранимые процессы не являются таблицами или представлениями, поэтому вы не можете ожидать набор записей, как если бы вы были таблицей или представлением. Вы комментируете, что «если изменяются хранимые столбцы процедур», пропускает этот факт: он не должен меняться

1 голос
/ 17 марта 2010

Существует несколько способов: Табличные переменные и CTE . У каждого есть свои преимущества, и ваш сценарий склоняет меня к мысли, что временная таблица - лучший вариант, если исходные данные являются существенными. Если это не так, я бы склонялся к CTE.

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