z-b*_*oss 0 t-sql sql-server sql-server-2005 sql-server-2008
这是我想要的宣言.
CREATE PROCEDURE UpdateTimeProc
(
@Hours int,
@Minutes int,
@Seconds int = 0,
@ResetCounter bit
)
Run Code Online (Sandbox Code Playgroud)
是的,不要求具有默认值的参数必须在参数之前或之后.但这意味着如果不包括所有参数,则需要命名参数.你不能说......
EXEC dbo.UpdateTimeProc 5, 5, 1;
Run Code Online (Sandbox Code Playgroud)
......并希望1与之相伴@ResetCounter.如果要保留可选参数,则需要命名参数(如Conrad的答案所示).
让我再说一遍:上面的语法不起作用.
您可以选择这样做(您只需在命名第一个参数后开始命名参数):
EXEC dbo.UpdateTimeProc 5, 5, @ResetCounter = 1;
Run Code Online (Sandbox Code Playgroud)
但我真的不推荐它,因为人们将不得不查看其他参数.通常我们应该更喜欢自我记录代码而不是简洁代码.
| 归档时间: |
|
| 查看次数: |
181 次 |
| 最近记录: |