Можно ли выполнить EXEC хранимую процедуру T-SQL, которая имеет выходной параметр, игнорируя при этом инструкцию SELECT? - PullRequest
3 голосов
/ 24 мая 2011

Я вызываю одну хранимую процедуру из другой, и процедура, которую я вызываю, имеет выходной параметр. Затем я передаю выходное значение в локальную переменную. Это все хорошо, но проблема в том, что эта процедура также содержит оператор select, поэтому, когда я exec, результаты процедуры возвращаются в окончательный набор результатов.

Есть ли способ просто получить значение выходного параметра и игнорировать все остальное?

Ответы [ 2 ]

6 голосов
/ 24 мая 2011

Хотя технически да, вы не должны этого делать.Движок потребляет ресурсы для создания набора результатов, который вы игнорируете.Вы также можете привести к ненужным раздорам.Если вам не нужен набор результатов, вам нужна другая процедура, которая должна производить только то, что вы хотите.

4 голосов
/ 24 мая 2011

Я уверен, что для этого есть несколько уловок, но на ум приходит следующее очевидное решение:

INSERT INTO #my_rubbish_temp_table_that_i_CREATEd_earlier
  EXEC dbo.mySproc @a, @b, @c OUTPUT

... согласно ответу Ремуса, это пустая трата ЦП,Ввод / вывод и т. Д.

Если вы можете добавить в хранимую процедуру дополнительный параметр, который позволяет подавлять набор результатов, это будет здорово.

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