Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Gdy aparat bazy danych programu SQL Server zgłasza błąd, ważność błędu wskazuje typ problemu napotkanego przez program SQL Server.
Poziomy ważności
W poniższej tabeli wymieniono i opisano poziomy ważności błędów zgłaszanych przez aparat bazy danych programu SQL Server.
| Poziom ważności | Description |
|---|---|
| 0-9 | Wskazuje komunikaty informacyjne, które zwracają informacje o stanie lub zgłaszają błędy, które nie są poważne. Aparat bazy danych nie zgłasza błędów systemowych o ważności od 0 do 9. |
| 10 | Wskazuje komunikaty informacyjne, które zwracają informacje o stanie lub zgłaszają błędy, które nie są poważne. Ze względów zgodności aparat bazy danych konwertuje ważność 10 na ważność 0 przed zwróceniem informacji o błędzie do aplikacji wywołującej. |
| 11-16 | Wskaż błędy, które mogą zostać skorygowane przez użytkownika. |
| 11 | Wskazuje, że dany obiekt lub jednostka nie istnieje. |
| 12 | Specjalna ważność zapytań, które nie używają blokady z powodu specjalnych wskazówek dotyczących zapytań. W niektórych przypadkach operacje odczytu wykonywane przez te instrukcje mogą spowodować niespójne dane, ponieważ blokady nie są podejmowane w celu zagwarantowania spójności. |
| 13 | Wskazuje błędy zakleszczenia transakcji. |
| 14 | Wskazuje błędy związane z zabezpieczeniami, takie jak odmowa uprawnień. |
| 15 | Wskazuje błędy składni w poleceniu Transact-SQL. |
| 16 | Wskazuje ogólne błędy, które mogą być poprawiane przez użytkownika. |
| 17-19 | Wskaż błędy oprogramowania, których nie można poprawić przez użytkownika. Poinformuj administratora systemu o problemie. |
| 17 | Wskazuje, że instrukcja spowodowała, że program SQL Server zabraknie zasobów (takich jak pamięć, blokady lub miejsce na dysku dla bazy danych) lub przekroczenie limitu określonego przez administratora systemu. |
| 18 | Wskazuje problem w oprogramowaniu aparatu bazy danych, ale instrukcja zostanie ukończona, a połączenie z wystąpieniem aparatu bazy danych jest utrzymywane. Administrator systemu powinien być informowany za każdym razem, gdy wystąpi komunikat o poziomie ważności 18. |
| 19 | Wskazuje, że przekroczono niekonfigurowalny limit aparatu bazy danych, a bieżący proces wsadowy został zakończony. Komunikaty o błędach z poziomem ważności 19 lub wyższym zatrzymają wykonywanie bieżącej partii. Błędy poziomu ważności 19 są rzadkie i muszą zostać skorygowane przez administratora systemu lub podstawowego dostawcę pomocy technicznej. Skontaktuj się z administratorem systemu, gdy zostanie zgłoszony komunikat o poziomie ważności 19. Komunikaty o błędach z poziomem ważności od 19 do 25 są zapisywane w dzienniku błędów. |
| 20-24 | Wskaż problemy systemowe i są błędami krytycznymi, co oznacza, że zadanie aparatu bazy danych, na którym uruchomiono instrukcję lub partię, nie jest już uruchomione. Zadanie rejestruje informacje o tym, co miało miejsce, a następnie kończy działanie. W większości przypadków połączenie aplikacji z wystąpieniem aparatu bazy danych może również zakończyć się. Jeśli tak, w zależności od problemu, aplikacja może nie być w stanie ponownie nawiązać połączenia. Komunikaty o błędach w tym zakresie mogą mieć wpływ na wszystkie procesy uzyskiwania dostępu do danych w bazie danych i mogą wskazywać, że baza danych lub obiekt jest uszkodzona. Komunikaty o błędach z poziomem ważności od 19 do 24 są zapisywane w dzienniku błędów. |
| 20 | Wskazuje, że instrukcja napotkała problem. Ponieważ problem dotyczył tylko bieżącego zadania, prawdopodobnie sama baza danych nie jest uszkodzona. |
| dwadzieścia jeden | Wskazuje, że wystąpił problem, który ma wpływ na wszystkie zadania w bieżącej bazie danych, ale prawdopodobnie sama baza danych nie jest uszkodzona. |
| 22 | Wskazuje, że tabela lub indeks określony w komunikacie został uszkodzony przez problem z oprogramowaniem lub sprzętem. Rzadko występują błędy poziomu ważności 22. W takim przypadku uruchom polecenie DBCC CHECKDB , aby określić, czy inne obiekty w bazie danych również są uszkodzone. Problem może znajdować się tylko w pamięci podręcznej buforu, a nie na samym dysku. Jeśli tak, ponowne uruchomienie wystąpienia aparatu bazy danych rozwiąza problem. Aby kontynuować pracę, należy ponownie nawiązać połączenie z wystąpieniem aparatu bazy danych. W przeciwnym razie użyj polecenia DBCC , aby rozwiązać problem. W niektórych przypadkach może być konieczne przywrócenie bazy danych.Jeśli ponowne uruchomienie wystąpienia aparatu bazy danych nie poprawi problemu, problem występuje na dysku. Czasami niszczenie obiektu określonego w komunikacie o błędzie rozwiązuje problem. Jeśli na przykład komunikat zgłasza, że wystąpienie aparatu bazy danych znalazło wiersz o długości 0 w indeksie nieklastrowanym, usuń indeks i ponownie skompiluj go. |
| 23 | Wskazuje, że integralność całej bazy danych jest kwestionowana z powodu problemu ze sprzętem lub oprogramowaniem. Rzadko występują błędy poziomu ważności 23. W takim przypadku uruchom polecenie DBCC CHECKDB , aby określić zakres uszkodzeń. Problem może znajdować się tylko w pamięci podręcznej, a nie na samym dysku. Jeśli tak, ponowne uruchomienie wystąpienia aparatu bazy danych rozwiąza problem. Aby kontynuować pracę, należy ponownie nawiązać połączenie z wystąpieniem aparatu bazy danych. W przeciwnym razie użyj polecenia DBCC , aby rozwiązać problem. W niektórych przypadkach może być konieczne przywrócenie bazy danych. |
| 24 | Wskazuje błąd nośnika. Administrator systemu może wymagać przywrócenia bazy danych. Może być również konieczne wywołanie dostawcy sprzętu. |
Ważność komunikatu o błędzie zdefiniowanego przez użytkownika
Możesz użyć sp_addmessage polecenia , aby dodać komunikaty o błędach zdefiniowane przez użytkownika z ważnościami od 1 do 25 do sys.messages widoku wykazu. Te komunikaty o błędach zdefiniowane przez użytkownika mogą być używane przez RAISERRORprogram . Aby uzyskać więcej informacji, zobacz sp_addmessage.
RAISERROR Może służyć do generowania komunikatów o błędach zdefiniowanych przez użytkownika z ważnościami od 1 do 25.
RAISERROR może odwoływać się do komunikatu o błędzie zdefiniowanego przez użytkownika przechowywanego sys.messages w widoku wykazu lub dynamicznie tworzyć komunikat. Jeśli RAISERROR podczas generowania błędu jest używany komunikat sys.messages o błędzie zdefiniowany przez użytkownika, ważność określona przez RAISERROR zastąpi ważność określoną w pliku sys.messages. Aby uzyskać więcej informacji, zobacz RAISERROR.
Ważność błędu i TRY... ŁAPAĆ
Konstrukcja TRY...CATCH przechwytuje wszystkie błędy wykonywania o ważności większej niż 10, które nie kończą połączenia z bazą danych.
Błędy o ważności od 0 do 10 to komunikaty informacyjne i nie powodują skoku TRY...CATCH wykonywania z CATCH bloku konstrukcji.
Błędy, które kończą połączenie z bazą danych, zwykle z ważnością od 20 do 25, nie są obsługiwane przez blok, ponieważ wykonywanie jest przerywane po zakończeniu CATCH połączenia.
Aby uzyskać więcej informacji, zobacz TRY... CATCH.
Pobieranie ważności błędu
Funkcja ERROR_SEVERITY systemowa może służyć do pobierania ważności błędu, który spowodował CATCH uruchomienie bloku TRY...CATCH konstrukcji.
ERROR_SEVERITY Metoda zwraca NULL wartość , jeśli jest wywoływana poza zakresem CATCH bloku. Aby uzyskać więcej informacji, zobacz ERROR_SEVERITY.