Дополнительные параметры в хранимой программе SQL Server?

Я пишу некоторые хранимые procs в SQL Server 2008 и задаюсь вопросом, возможно ли здесь понятие дополнительных входных параметров?

Я предполагаю, что я всегда мог бы передать NULL для параметров, которые я не хочу использовать, проверить значение в хранимой процедуре, а затем взять вещи оттуда, но мне было интересно, если концепция доступна здесь. Благодарю!

Ответ 1

Вы можете объявить это как

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

Ответ 2

Да, это так. Объявите параметр следующим образом:

@Sort varchar(50) = NULL

Теперь вам даже не нужно передавать параметр. По умолчанию он будет равен NULL (или тому, что вы решите по умолчанию).