Roc*_*och 5 sql t-sql sql-server optional-parameters
我想知道无论如何我可以将我的一个存储过程参数设置为可选.
IF @thing_id <> ''
BEGIN
SET @sFiltre = @sFiltre + ' AND OPERES.OPE_THING = ' + CONVERT(VARCHAR,@thing_id)
END
Run Code Online (Sandbox Code Playgroud)
Raj*_*ore 14
创建存储过程时,请像这样创建它
Create Proc MyProc
@Param1 VarChar (20),
@Param2 VarChar (20) = NULL
AS
-- Your code here
GO
Run Code Online (Sandbox Code Playgroud)
Param1是强制性的
Param2是可选的
为存储过程参数提供默认值将使其成为可选.
编辑:
CREATE PROC [EDURE] [所有者.]
procedure_name [; number]
[{@parameter data_type}
[VARYING] [= default] [OUTPUT]
] [,... n]默认
是参数的默认值.如果定义了默认值,则可以在不指定该参数值的情况下执行该过程.默认值必须是常量,或者可以为NULL.如果过程使用带有LIKE关键字的参数,则它可以包含通配符(%,_,[]和[^]).
请参阅 - http://msdn.microsoft.com/en-us/library/aa258259%28SQL.80%29.aspx
是的。在参数列表末尾列出“可选”参数,并给它们一个默认值(通常为 NULL):
CREATE PROCEDURE MyProcedure
@param1 int,
@param2 varchar(200),
@thing_id int = NULL
AS
If @thing_id IS NULL Begin
/* ... */
End
END
Run Code Online (Sandbox Code Playgroud)