Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Просмотре результатов работы хранимой процедуры  [new]
analysts
Member

Откуда: Gardinas
Сообщений: 139
Здравствуйте.
Может кто-нибудь подскажет как можно просмотреть результаты работы хранимой процедуры.
В книге Кена Хендерсона по T-SQL, я нашёл маленький абзац по этому поводу.
"Команда INSERT поддерживает вызовы хранимых процедур, для получения записей, вставляемых в таблицу...
Этот способ удобен для сохранения результатов хранимой процедуры в таблицу для дальнейшего использования."
Всё вроде бы понятно, но синтаксис не понял.(
Может кто-нибудь ткнуть носом на нормально объяснение или даже предложить другой способ.
Заранее благодарю!
27 июн 11, 20:01    [10883508]     Ответить | Цитировать Сообщить модератору
 Re: Просмотре результатов работы хранимой процедуры  [new]
aleks2
Guest
create procedure Dummy
(@Parameter as int)
as 
select cast(1 as int) as Field1, cast(2 as int) as Field2
return
go

declare @t table(p1 int, p2 int)

insert @t exec Dummy 0

select * from @t
27 июн 11, 20:23    [10883582]     Ответить | Цитировать Сообщить модератору
 Re: Просмотре результатов работы хранимой процедуры  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
INSERT EXEC Очень костыльная конструкция с немалым набором неприятных "приколов". Старайтесь вообще её не использовать. Но если вам приходится, при программировании системы, то скорее всего у вас архитектурная ошибка.
27 июн 11, 21:58    [10883905]     Ответить | Цитировать Сообщить модератору
 Re: Просмотре результатов работы хранимой процедуры  [new]
Начинающий SQL 2008
Member

Откуда:
Сообщений: 438
analysts,
???
Использовать RowSet, возвращаемый хранимой процедурой
28 июн 11, 10:13    [10884960]     Ответить | Цитировать Сообщить модератору
 Re: Просмотре результатов работы хранимой процедуры  [new]
Glamorama
Member

Откуда:
Сообщений: 152
Mnior
INSERT EXEC Очень костыльная конструкция с немалым набором неприятных "приколов". Старайтесь вообще её не использовать.


А можно поподробнее?? Для расширения кругозора так сказать.
28 июн 11, 13:11    [10886152]     Ответить | Цитировать Сообщить модератору
 Re: Просмотре результатов работы хранимой процедуры  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
В FAQ уже есть кое что, и по вашей проблеме.
Главное: "An INSERT EXEC statement cannot be nested"
Второе: Зависимость от SET TEXTSIZE (и её не обнаружить сразу т.к. в SSMS max по умолчанию)
Третье: приколы (ошибки) в транзакциях, лично нарвался при DISTRIBUTED и в Service Broker. Ещё тынц.
А вот тут более подробно по вашей проблеме и ещё по INSERT EXEC:
  • It can't nest.
  • There is a serious maintenance problem.
  • The procedure is executed in the context of a transaction.
  • A ROLLBACK aborts the batch.
  • INSERT-EXEC does not start an implicit transaction (on some SQL Server versions).
  • 28 июн 11, 15:13    [10887167]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить