SQL Server 输出参数问题 [英] SQL Server output parameter issue

查看:24
本文介绍了SQL Server 输出参数问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am using SQL Server 2008 Enterprise. I am learning OUTPUT parameter of SQL Server stored procedure. For example, stored procedure sp_add_jobschedule has an OUTPUT parameter called schedule_id.

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

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

My confusion is, looks like OUTPUT parameter could be provided an input value and also returns a value, looks like it has behaviors of both INPUT and OUTPUT parameter? Is it allowed not to provide any INPUT values for OUTPUT parameter (to make it look like pure output parameter behavior)?

推荐答案

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

The confusion is justified to a degree - and other RDBMS like Oracle do have stored procedure parameters which can be of type IN (input only), OUT (output only), or INOUT (both ways - "pass by reference" type of parameter).

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

SQL Server is a bit sloppy here since it labels the parameter as OUTPUT, but really, this means INPUT/OUTPUT - it basically just means that the stored proc has a chance of returning a value from its call in that parameter.

所以是的 - 即使它被称为 OUTPUT 参数,它实际上更像是一个 INPUT/OUTPUT 参数,以及那些 IN, INOUT, OUT 像 Oracle 中那样在 SQL Server 中不存在(在 T-SQL 中).

So yes - even though it's called OUTPUT parameter, it's really more of an INPUT/OUTPUT parameter, and those IN, INOUT, OUT like in Oracle do not exist in SQL Server (in T-SQL).

这篇关于SQL Server 输出参数问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆