Sql参数参数方向
今天,一位开发人员问我将 SqlCommand
的所有 SqlParameters
设置为 ParameterDirection.InputOutput
时是否存在缺点或风险。我想不出任何可能会出现一些性能问题(但甚至不确定)? 有人有这方面的经验吗?
A developer asked me today if there are disadvantages or risks while setting all SqlParameters
for a SqlCommand
to ParameterDirection.InputOutput
. I coudn't think of any expect maybe some performance issues (but not even sure of that)?
Someone having experience with that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果代码随后不尝试使用这些值,则不会有风险。但是,如果代码再次使用这些值,则存储过程内的值可能已更改。从性能角度来看,如果这些值是输出参数,则这些值将从 SQL 编组回来。
真正这样做是没有意义的。并非所有 DBMS 都支持输出参数,因此您需要增加耦合以获得零增益。
There is no risk if the code doesn't attempt to use the values afterwards. However, if code is using the values again then the value may have changed inside the stored procedure. Performance wise, the values are marshalled back from SQL if they are output parameters.
There is no point in doing this really. Not all DBMS support output parameters so you would be increasing coupling for zero gain.
作为开发人员,您应该清楚地表明您的意图。
如果参数不是 in/out,那么将方向设置为 in/out 只会增加混乱而不是价值。
As a developer you should be clearly showing your intent.
If the parameter is not in/out then setting the direction to in/out will only add confusion not value.