将单个值从存储过程返回到.Net:OUTPUT参数或ExecuteScalar会更好吗?

Kee*_*ker 3 .net c# sql t-sql sql-server

我需要创建一个需要返回一些记录计数的存储过程.我正在使用.Net来读取结果.

我可以使用OUTPUT参数来返回值,或者我可以select count(*)在存储过程中执行a 并使用SqlCommand.ExecuteScalar来读取它.

什么更好,为什么?

Eri*_*ker 5

查看此MSDN文章:性能比较:数据访问技术

本文在性能测试中GetOrderStatus表明,OUTPUT参数和ExecuteScaler之间的性能对于检索单个值是相同的,但ExecuteScalar需要的代码更少.

以下是关于不使用OUTPUT参数的一些其他有趣的想法:输出参数有 什么问题.我喜欢那篇Output params break the fundamental idea of a function文章中的想法.