/ / opcjonalne parametry w proccie przechowywanym w SQL Server? - sql-server-2008, procedury przechowywane, parametry opcjonalne

opcjonalne parametry w SQL Server przechowywane proc? - sql-server-2008, zapisane procedury, opcjonalne parametry

Piszę niektóre przechowywane procs w SQL Server 2008 i zastanawiałem się, czy tutaj jest możliwe pojęcie opcjonalnych parametrów wejściowych?

Przypuszczam, że zawsze mogłem przekazać NULL dlaParametry, których nie chcę używać, sprawdzam wartości w przechowywanym proc, a następnie biorę rzeczy stamtąd, ale byłem zainteresowany, czy koncepcja jest dostępna tutaj. Dzięki!

Odpowiedzi:

151 dla odpowiedzi № 1

Możesz zadeklarować w ten sposób

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

42 dla odpowiedzi nr 2

Tak to jest. Deklaruj parametr jako:

@Sort varchar(50) = NULL

Teraz nie musisz nawet przekazywać parametru. Domyślnie będzie to NULL (lub cokolwiek innego wybierzesz domyślnie).