Udostępnij za pośrednictwem


Określanie wartości parametru Default

Można utworzyć procedura przechowywana z parametrów opcjonalnych przez określenie wartości domyślnej dla parametrów opcjonalnych.Podczas wykonywania procedura przechowywana, używana jest wartość domyślna, jeśli wartość nie została określona.

Określanie wartości domyślnej jest konieczne, ponieważ zwracany jest błąd systemu, jeśli parametr ma wartość domyślną, określone w procedurze przechowywanej, a program wywołujący nie zawiera wartości dla parametru po wykonaniu procedura przechowywana.

Odpowiednio jako domyślny dla tego parametru można określić żadnej wartości, można określić wartość NULL jako wartość domyślna dla parametru i mieć procedury przechowywanej, zwraca niestandardowy komunikat, gdy procedura przechowywana jest wykonywane bez wartości dla parametru.

Uwaga

Jeśli wartością domyślną jest ciąg znaków zawierający osadzone spacje lub znaki interpunkcyjne lub jeśli zaczyna się od numeru (na przykład 6xxx), musi być ujęty w cudzysłów pojedynczy, proste.

Przykłady

Poniższy przykład tworzy usp_GetSalesYTD Procedura o jeden parametr wejściowy, @SalesPerson. Wartość NULL jest przypisany jako wartość domyślna dla parametru i jest używany w instrukcji obsługa błędów do zwracania niestandardowy komunikat o błędzie w przypadku, gdy procedura przechowywana jest wykonywane bez wartości @SalesPerson parametr.

W poniższym przykładzie wykonuje procedura przechowywana.Pierwsza instrukcja wykonuje procedura przechowywana bez określenia wartości wejściowej.Powoduje to błąd instrukcji obsługi w procedurze przechowywanej, aby zwrócić komunikat błędu niestandardowego.Druga instrukcja zawiera wartości wejściowej i zwraca zestaw oczekiwanych wyników.

-- Run the stored procedure without specifying an input value.
EXEC Sales.usp_GetSalesYTD;
GO
-- Run the stored procedure with an input value.
EXEC Sales.usp_GetSalesYTD N'Blythe';
GO

W poniższym przykładzie my_proc wartości domyślne dla każdego z trzech parametrów procedury**@ pierwszego**, @ sekundy, and @ trzeci, a wartości wyświetlane, gdy procedura przechowywana jest wykonywane przy użyciu innych wartości parametrów:

EXECUTE dbo.my_proc; -- No parameters supplied
GO

Here is the result set.

NULL  2  3

EXECUTE dbo.my_proc 10, 20, 30;-- All parameters supplied
GO

Here is the result set.

10  20  30

EXECUTE dbo.my_proc @second = 500;  -- Only second parameter supplied by name
GO

Here is the result set.

NULL  500  3

EXECUTE dbo.my_proc 40, @third = 50 -- Only first and third parameters
                                    -- are supplied.

Here is the result set.

40  2  50