一尘不染

SQL Server输出参数问题

sql

我正在使用SQL Server 2008 Enterprise。我正在学习SQL
Server存储过程的OUTPUT参数。例如,存储过程sp_add_jobschedule具有一个称为schedule_id的OUTPUT参数。

http://msdn.microsoft.com/en-
us/library/ms366342.aspx

我的困惑是,好像可以为OUTPUT参数提供一个输入值并返回一个值,好像它具有INPUT和OUTPUT参数的行为吗?是否允许不为OUTPUT参数提供任何INPUT值(使其看起来像纯输出参数行为)?


阅读 167

收藏
2021-03-17

共1个答案

一尘不染

这种混淆在一定程度上是合理的-
像Oracle这样的其他RDBMS确实具有存储过程参数,这些参数可以是IN(仅输入),OUT(仅输出)或INOUT(两种方式-“按引用传递”类型的参数)类型。

SQL Server在这里有点草率,因为它将参数标记为OUTPUT,但实际上,这意味着INPUT/
OUTPUT-它基本上仅意味着存储的proc有机会从该参数的调用中返回值。

所以,是的-
尽管它被称为OUTPUT参数,它是真正的性质转向INPUT/OUTPUT参数,而这些ININOUTOUT像甲骨文不会在SQL
Server中存在(在T-SQL)。

2021-03-17