Przewodnik krok po kroku dotyczący używania TRY/CATCH do obsługi błędów programu SQL Server
Identyfikuj błędy bez przerywania wykonywania
Larry Washburn / Getty Images
Instrukcja TRY/CATCH w Transact-SQL wykrywa i obsługuje warunki błędów w aplikacjach bazodanowych. To stwierdzenie jest kamieniem węgielnym SQL Obsługa błędów serwera i jest ważnym elementem tworzenia niezawodnych aplikacji bazodanowych.
TRY/CATCH dotyczy SQL Server począwszy od 2008, Azure SQL Database, Azure SQL Data Warehouse i Parallel Data Warehouse.
Przedstawiamy TRY/CATCH
TRY./CATCH działa przez określenie dwóch instrukcji Transact-SQL: jednej, którą chcesz „wypróbować”, a drugiej do „wyłapania” wszelkich błędów, które mogą się pojawić. Gdy SQL Server napotka instrukcję TRY/CATCH, natychmiast wykonuje instrukcję zawartą w klauzuli TRY. Jeśli instrukcja TRY zostanie wykonana pomyślnie, program SQL Server przejdzie dalej. Jeśli jednak instrukcja TRY wygeneruje błąd, SQL Server wykona instrukcję CATCH, aby poprawnie obsłużyć błąd.
Podstawowa składnia ma następującą postać:
|_+_|
TRY/CATCH Przykład
Rozważmy bazę danych zasobów ludzkich, która zawiera tabelę o nazwie pracownicy , który zawiera informacje o każdym z pracowników firmy. Ta tabela używa numeru identyfikacyjnego pracownika jako klucza podstawowego.
Możesz spróbować użyć poniższego oświadczenia, aby wstawić nowego pracownika do swojej bazy danych:
|_+_| |_+_|W tym przykładzie wszelkie występujące błędy są zgłaszane zarówno użytkownikowi wykonującemu polecenie, jak i adresowi e-mail hr@foo.com. Błąd wyświetlany użytkownikowi to:
ROZPOCZNIJ PRÓBĘ
INSERT INTO pracowników (id, imię, nazwisko, rozszerzenie)
VALUES(12497, 'Mike', 'Chapple', 4201)END TRYBEGIN CATCHPRINT 'BŁĄD:' + ERROR_MESSAGE( );EXEC msdb.dbo.sp_send_dbmail@profile_name = 'Poczta pracownika',@recipients = 'hr@foo.com' ,@body = 'Wystąpił błąd podczas tworzenia nowego rekordu pracownika.',@subject = 'Błąd bazy danych pracownika' ;KONIEC CATCH
Wykonywanie aplikacji jest kontynuowane normalnie, umożliwiając programiście obsługę błędu. Użycie instrukcji TRY/CATCH to elegancki sposób na proaktywne wykrywanie i obsługę błędów występujących w aplikacjach bazodanowych SQL Server.
Uczyć się więcej
Aby dowiedzieć się więcej o języku zapytań strukturalnych, zapoznaj się z naszym artykułem Podstawy SQL .