Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在TSQL存储过程中返回单个值更好的方法是:返回还是输出?_Sql Server_Sql Server 2005_Tsql_Return - Fatal编程技术网

Sql server 在TSQL存储过程中返回单个值更好的方法是:返回还是输出?

Sql server 在TSQL存储过程中返回单个值更好的方法是:返回还是输出?,sql-server,sql-server-2005,tsql,return,Sql Server,Sql Server 2005,Tsql,Return,我有一个小的存储过程,它需要将记录数返回一个值。用什么更好?是返回结果还是输出参数返回结果 我正在使用C/.Net与SQL server进行“对话”。如果您已经知道SQL语句的执行将返回一行数据,那么您应该始终选择带有输出参数的存储过程,而不是单行select语句 与在应用程序代码中嵌入简单的SQL语句相比,使用存储过程有几个优点。除了所有这些优点之外,您保存的不是打开记录集获取数据,而是使用输出参数调用存储过程。使用记录集时,数据源对象返回的查询结果包括数据和元数据。元数据通常比数据大得多,或

我有一个小的存储过程,它需要将记录数返回一个值。用什么更好?是返回结果还是输出参数返回结果


我正在使用C/.Net与SQL server进行“对话”。

如果您已经知道SQL语句的执行将返回一行数据,那么您应该始终选择带有输出参数的存储过程,而不是单行select语句

与在应用程序代码中嵌入简单的SQL语句相比,使用存储过程有几个优点。除了所有这些优点之外,您保存的不是打开记录集获取数据,而是使用输出参数调用存储过程。使用记录集时,数据源对象返回的查询结果包括数据和元数据。元数据通常比数据大得多,或者是查询结果的重要部分。因此,您可能希望使用带有输出参数的存储过程


我认为返回和输出的工作方式类似。但是,一般来说,return最常用于从过程返回状态结果或错误代码。

使用输出参数

通过客户机中的SELECT或OUTPUT子句等处理标量参数比处理数据集占用的资源更少


并且返回仅限于int数据类型。这在这里并不重要,但通常情况下,RETURN将用于状态和错误

我建议使用OUTPUT参数,因为它成本较低。当您返回count int type时,可以在此处使用Return,但这是不可取的,因为Return用于状态或错误。

什么更好?表演可读性?最小的惊喜?还有别的吗?@Oded jep,你挑吧。我试图理解为什么在一个结果的情况下,一个比另一个更好。我没有在代码中嵌入sql。我使用的是存储过程。但您是否在其上进行选择以返回信息?嗯。。。实际上,问题是使用返回值还是使用out参数。我没有返回select count*…我认为返回和输出的工作方式类似。但是,一般来说,return最常用于从过程返回状态结果或错误代码。@KeesC.Bakker:是。如果出现错误,它也是不可靠的。你能评论一下这个问题中的标量吗?