Я пишу некоторые хранимые 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 (или тому, что вы решите по умолчанию).