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

Мне нужно создать хранимую процедуру, которая должна возвращать счетчик некоторых записей. Я использую .Net, чтобы прочитать результат.

Я могу использовать параметр OUTPUT для возврата значения или Я могу сделать select count(*) в хранимой процедуре и использовать SqlCommand.ExecuteScalar для его чтения.

Что лучше и почему?

Ответы [ 3 ]

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

Ознакомьтесь с этой статьей MSDN: Сравнение производительности: методы доступа к данным

В статье показано в тесте производительности для GetOrderStatus, что производительность между параметром OUTPUT и ExecuteScaler одинакова для получения одного значения , но для ExecuteScalar требуется меньше кода.

Вот некоторые другие интересные мысли о том, что не следует использовать параметр OUTPUT: Что не так с выходными параметрами . Мне нравится мысль о Output params break the fundamental idea of a function в этом посте.

0 голосов
/ 18 октября 2012

Чтобы добавить мысль - ExecuteScalar вернет код состояния, если SP не упоминает иначе.Кажется, это хорошая практика, чтобы сохранить это вокруг.

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

Определенно - параметр OUTPUT - самый быстрый и правильный способ

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