Что лучше возвращать одно значение в хранимой процедуре TSQL: RETURN или OUTPUT? - PullRequest
3 голосов
/ 21 декабря 2011

У меня есть небольшая хранимая процедура, которая должна возвращать количество записей (значение single ).Что лучше использовать?RETURN для возврата результата или OUTPUT параметр для возврата результата?

Я использую C # / .Net для «общения» с сервером SQL.

Ответы [ 3 ]

5 голосов
/ 21 декабря 2011

Использовать выходной параметр.

Работа с скалярным параметром требует меньше ресурсов, чем набор данных с помощью SELECT (или предложения OUTPUT и т. Д.) На клиенте

И ВОЗВРАТ ограничен int типом данных. Здесь это не имеет значения, но обычно RETURN используется для статуса и ошибок

1 голос
/ 21 декабря 2011

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

Существует несколькоПреимущества использования хранимых процедур перед встраиванием простых операторов SQL в код приложенияПомимо всех этих преимуществ, вместо сохранения набора записей для извлечения данных вы просто вызываете хранимую процедуру с выходными параметрами.При использовании набора записей результаты запроса, возвращаемые объектом источника данных, включают данные и метаданные.Часто метаданные намного больше, чем данные, или составляют значительную часть результатов запроса.Из-за этого вы можете вместо этого использовать хранимую процедуру с выходными параметрами.


Я думаю, что return и output работают аналогичным образом.Но, как правило, return чаще всего используется для возврата результата состояния или кода ошибки из процедуры.

0 голосов
/ 22 декабря 2011

Я предлагаю использовать параметр OUTPUT, потому что он дешевле.Возврат может быть использован здесь, так как вы возвращаете count (тип int), но это не рекомендуется, поскольку return используется для статуса или ошибки.

...