Udostępnij za pośrednictwem


Zagnieżdżanie procedur przechowywanych.

procedura składowana są zagnieżdżone, gdy procedura składowana wywołuje inny lub wykonuje kod zarządzany, odwołując się do rutynowych CLR, typ lub wartość zagregowana.Można zagnieździć procedur przechowywanych i kod zarządzany odwołuje się do 32 poziomy.Po nazwie procedura składowana lub kod zarządzany, odwołanie rozpoczyna się wykonywanie i zmniejsza się o jeden po nazwie procedura składowana lub kod zarządzany, odwołanie kończy wykonywanie poziom zagnieżdżenia zwiększa się o jeden.Próby przekracza maksimum 32 poziomów zagnieżdżenia powoduje, że cały łańcuch Niepowodzenie wywołania.Bieżący poziom zagnieżdżenia procedur przechowywanych w wykonanie jest przechowywana w funkcja @@ NESTLEVEL.

Ostrzeżenie

Wszelkie odniesienia do kod zarządzany z Transact-SQL procedura składowana liczy się jako jeden poziom przeciwko limit zagnieżdżania poziom 32.Metody wywoływane z poziomu kod zarządzany nie są uwzględniane tego limitu.

Gdy procedura składowana wykonuje kod zarządzany przez odwoływanie się do rutynowych CLR, typ lub wartość zagregowana, to odwołanie również liczy się jako jeden poziom zagnieżdżenia.Metody wywoływane z poziomu kod zarządzany nie są uwzględniane tego limitu.Bieżący poziom zagnieżdżenia jest zwracana przez funkcja @@ NESTLEVEL.When a CLR stored procedure performs data access operations through the Microsoft SQL Server managed provider, an additional nesting level is added in the transition from managed code to SQL and this level is reflected in the @@NESTLEVEL function.

Błąd w procedurze przechowywanej zagnieżdżone nie stwarza niekoniecznie do wywołania procedura składowana.Podczas wywoływania procedur przechowywanych w ramach procedura składowana, użyj Transact-SQL RETURN, instrukcja zwraca kod zwrotny i sprawdzić kod zwracany z wywołania procedura składowana.W ten sposób można określić zachowanie procedur przechowywanych, jeśli wystąpią błędy.Aby uzyskać więcej informacji o używaniu zwracanych kodów, zobacz Zwracanie danych przy użyciu kodu zwracają.

Procedury przechowywane nawet zrobić sobie zagnieżdżone wywołania technika nazywany rekursją.

Chociaż zagnieżdżenie to 32 poziomy SQL Server nie ma żadnych ograniczeń liczby procedur przechowywanych, które mogą być wywoływane z danej procedura składowana, pod warunkiem że podrzędny procedura składowana nie wywoływać inne podrzędny procedur przechowywanych i nigdy nie zostanie przekroczony maksymalny poziom zagnieżdżenia.