Answers:
您可以这样声明
CREATE PROCEDURE MyProcName
@Parameter1 INT = 1,
@Parameter2 VARCHAR (100) = 'StringValue',
@Parameter3 VARCHAR (100) = NULL
AS
/* check for the NULL / default value (indicating nothing was passed */
if (@Parameter3 IS NULL)
BEGIN
/* whatever code you desire for a missing parameter*/
INSERT INTO ........
END
/* and use it in the query as so*/
SELECT *
FROM Table
WHERE Column = @Parameter
是的。这样声明参数:
@Sort varchar(50) = NULL
现在,您甚至不必传递参数。它将默认为NULL(或您选择默认为的任何值)。
= NULL
2014年及以上的版本至少可以设置一个默认值,如果不传递该参数,它将采用该默认值,并且不会出现错误。部分示例:第三个参数作为可选添加。仅使用前两个参数的实际过程的执行程序工作正常
exec getlist 47,1,0
create procedure getlist
@convId int,
@SortOrder int,
@contestantsOnly bit = 0
as