gpt4 book ai didi

java - SQL参数顺序

转载 作者:行者123 更新时间:2023-12-01 11:09:51 27 4
gpt4 key购买 nike

我正在调用 MS SQL SP,并且刚刚向 SP 添加了一个新参数。看起来像这样:

ALTER PROCEDURE yadayadaTable
(
@Id int,
@Date date,
@Message nvarchar(255),
@Output int OUTPUT,
@fooValue int = 1
)

然而,这使 SP 调用停止工作。 sp 参数的顺序至关重要吗?因此,

输出参数是否需要放在最后?

编辑:添加的参数是最后一个(fooValue),我在java中这样调用它(不知道这对你是否有意义:))

ohOk = ohOk.set(mySqlConn.executeProcedure("dbo.yadayadaTable",
"@Id:IN=pd;
@Date:IN=pDate;
@Message:IN=pNote;
@Output:INOUT=pOutPut;
@fooValue:IN=pfooValue",
_internal_parameter_table,
_internal_return_parameter_table,
"proc1402661085026055"));

谢谢!

最佳答案

这取决于你如何调用它。

如果您从 T-SQL 调用存储过程,您可以:

DECLARE @output int
EXEC yadayadaTable 1, '2015-10-01', 'A Message', @output OUTPUT, 2
or
EXEC yadayadaTable 1, '2015-10-01', 'A Message', @output OUTPUT
or
EXEC yadayadaTable @Output=@output OUTPUT, @Date='2015-10-01', @Id=1, @Message='A Message'

请注意,如果您不指定参数名称,则必须按照参数在存储过程中定义的顺序传递值。

如果在存储过程中定义了 OUTPUT 参数,则需要从调用方法中传递一个参数。

例如,如果您从 C# 中的服务器端代码调用此函数,则在创建命令对象来运行存储过程时,您将添加参数并指定它们的名称。 .net 框架将为您生成最后一个示例。

最佳实践,始终指定参数名称。这样,您对 SP 参数所做的更改就不太可能破坏使用它的现有代码。

更多帮助:

关于java - SQL参数顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32498083/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com