
[英]In a T-SQL stored procedure, can optional parameters be added after an output parameter?
[英]Can a not optional parameter follow an optional one in the t-sql stored procedure?
这是我想要的声明。
CREATE PROCEDURE UpdateTimeProc
(
@Hours int,
@Minutes int,
@Seconds int = 0,
@ResetCounter bit
)
是的,不要求带有默认值的参数必须在没有默认值的参数之前或之后。 但这意味着如果不包括所有参数,则需要命名参数。 你不能说...
EXEC dbo.UpdateTimeProc 5, 5, 1;
...并期望1
与@ResetCounter
一起使用。 如果要省略可选参数,则需要命名参数(如Conrad的答案所示)。
让我重复一遍: 以上语法将不起作用。
您可以选择以这种方式进行操作(在命名第一个参数之后,只需开始命名参数):
EXEC dbo.UpdateTimeProc 5, 5, @ResetCounter = 1;
但我真的不建议这样做,因为人们将不得不查询其他参数。 通常,我们应该首选自记录代码而不是简洁代码。
是的,但是调用时必须使用命名参数
例如,从SSMS呼叫就像
EXECUTE UpdateTimeProc @Hours = 1, @Minutes =2 , @ResetCounter = 0;
如果您正在使用从另一个客户端(让我们说C#)调用它,则需要不对参数设置value属性或不将其包含在Parameter Collection中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.