Ten samouczek pomoże ci, jeśli zobaczysz błąd ponownego uruchomienia w SQL.
Zatwierdzono: Fortect
- 11 minut na przeczytanie.
Dotyczy: SQL Server (wszystkie obsługiwane wersje) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Generuje dowolny komunikat o błędzie i zwiększa błąd przetwarzania spowodowany sesją. RAISERROR może odnosić się do rzeczywistej niestandardowej wiadomości tekstowej przechowywanej w sys.messages viewcollection lub dynamicznie formułować wiadomość. Komunikat jest zwracany jako doskonały komunikat kolejki błędów do aplikacji wywołującej lub nawet do skojarzonego bloku CATCH konstrukcji TRY … CATCH. Zamiast tego nowe aplikacje powinny przejść do THROW .
Składnia
— składnia dla SQL Server i Azure SQL Database RAISERROR (msg_id , Dotkliwość, kropka [, Argument [, ...] n]) [Podejście MIT [, ... n]]
— składnia usługi Azure Synapse Analytics i Parallel Data Warehouse RAISERROR (Msg_str , grawitacja, stan [, Argument [, ...] n]) [Z opcją [, ... d]] A
Argumenty
msg_id
jest fantastyczną, zdefiniowaną przez użytkownika liczbą błędów, która jest przechowywana w całym określonym widoku sys.messages przy użyciu sp_addmessage. Ilość błędów dla niestandardowych komunikatów o błędach musi być większa niż 50000. Jeśli msg_id nie jest określony, RAISERROR dołącza do komunikatu o błędzie tablicę 50000 błędów.
msg_str
Jest to niestandardowa odpowiedź w formacie podobnym do aspektu printf w niektórych standardach bibliotecznych C. Notatka o błędzie może mieć do 2047 znaków. Jeśli wiadomość zawiera 2048 lub więcej odmian systemu Jednak, tylko pierwsze 2044 będzie widoczne, a zatem zostanie dodany wielokropek, aby wskazać, która wiadomość została zwykle obcięta. Zwróć uwagę, który parametr do zastąpienia wymaga więcej znaków niż pokazano na bieżącym wyjściu, ze względu na kompatybilność z pamięcią wewnętrzną. Np. parametr podstawiania związany z % d ustawionym na 2 generuje tylko jeden konkretny znak w numerze wiadomości, ale również w domu wymaga o wiele więcej miejsca w pamięci. To wymaganie dotyczące pamięci zmniejsza liczbę znaków do wyboru przy wydruku kropkowym. Msg_str
Jeśli określono, RAISERROR wyśle każdy komunikat o błędzie z doskonałym numerem błędu odnoszącym się do 50000. Tak
msg_str to ciąg znaków w wbudowanych specyfikacjach konwersji. Każdy wybór transformacji określa sposób przygotowania wartości z listy wyboru i jest umieszczany w każdym polu w bieżącej pozycji specyfikacji szybkości transformacji za pomocą msg_str. Specyfikacje konwersji, które tworzą ten format, mogą być następujące:
Kod identyfikujący lokalizację i uzasadnienie zastępowanej wartości.
Kod | Prefiks uzasadnienia | Opis |
---|---|---|
– (mniej) | Wyrównany do lewej | Zwykle wyrównuje zwykle wartość argumentu do określonej szerokości pola. |
+ (więcej) | Prefiks znaku | Użyj najnowszego ostrzeżenia plus (+) i / lub minus przed każdą wartością argumentu. Jeśli (-) wartość pochodzi ze wszystkich podpisanych typów. |
nic (zero) | dopełnienie zerami | Ostatni wynik jest dodawany do zera, po prostu osiąga się minimalną szerokość. Jeśli wyświetlane są 0 i minus, znak ostrzegawczy (-), 0 jest zapomniane. |
# (liczba) | Prefiks 0x, aby uzyskać szesnastkowy typ x lub X | W przypadku użycia z formatem o, x lub X, duża liczba poprzedza kod znaku (#) dowolną niezerową wartością 0, 0x lub 0X. Jeśli ve miał, i, lub oughout jest poprzedzone flagą wskazującą liczbę (#), flaga ta jest ignorowana. |
‘lol (pusty) | spacja | Dodaj puste witryny internetowe online do wartości wyjściowej, jeśli wartość jest zwykle podpisana i korzystna. Zostanie zignorowana pod warunkiem, że będzie miała wskaźnik wdzięczności ze znakiem bonusu (+). |
jest liczbą całkowitą określającą całą minimalną wIrinę kategorii, w której osadzona jest jej wartość argumentu. Jeżeli długość dotycząca argumentu ceny jest równa lub większa od gęstości, wartość jest drukowana bez dopełnienia. Jeśli wartość jest krótsza niż ciężka, wartość jest dopełniana do szerokości określonej przez szerokość.
Gwiazdka (*) oznacza pomysł, że szerokość jest określona przez towarzyszący mu przypadek w argumencie listy, który ma najlepszą wartość całkowitą.
Maksymalna szybkość znaków, przyjęta za pomocą zalet argumentów dla wartości łańcuchowych. Na przykład, jeśli ten ciąg ma pięć znaków, a precyzja musi wynosić 3, być może można użyć tylko pierwszych trzech głównych znaków wartości ciągu.
W przypadku liczb całkowitych dokładność może być opisana jako co najmniej równa liczbie wydrukowanej ilości.
Gwiazdka (*) oznacza, że integralność jest wskazywana przez powiązany argument, gdy w grze pojawia się lista argumentów, która musi pozostać liczbą całkowitą.
W przypadku użycia z typami awatarów filmowych c, i, o, s, x, X, a także i, a także u, Shortint (h) lub nawet Longint (l) generuje wartości.
@variable_locale
Zmienna powiązana ze wszystkimi prawidłowymi typami danych znakowych, które zawierają uporządkowany ciąg, na przykład msg_str. @local_variable musi również stale być char varchar, w przeciwnym razie musi być odpowiednia konwersja do tych typów danych bez wątpliwości.
Poważne
Czy rygorystyczność jest powiązana z tą wiadomością. W przypadku użycia, gdy msg_id do wyzwolenia niestandardowej wiadomości głosowej wygenerowanej za pomocą sp_addmessage, ważność określona w RAISERROR zastępuje ważność określoną w sp_addmessage.
Opcja WITH LOG jest zazwyczaj wymagana dla poziomów istotności 19-25. Wartości ważności mniejsze niż 0 są postrzegane jako. Poziom dotkliwości powyżej 25 jest uważany za 25.
Zatwierdzono: Fortect
Fortect to najpopularniejsze i najskuteczniejsze narzędzie do naprawy komputerów na świecie. Miliony ludzi ufają, że ich systemy działają szybko, płynnie i bez błędów. Dzięki prostemu interfejsowi użytkownika i potężnemu silnikowi skanowania, Fortect szybko znajduje i naprawia szeroki zakres problemów z systemem Windows - od niestabilności systemu i problemów z bezpieczeństwem po zarządzanie pamięcią i wąskie gardła wydajności.
Można określić wartość -1, aby zmienić wagę błędu związanego z elektrycznością, jak pokazano w poniższym przykładzie.
RAISERROR (15600, -1, -1, 'mysp_CreateCustomer');
Komunikat 15600, poziom 15, stan 1, wiersz 1Nieprawidłowy parametr lub operacja została określona jako procedura dla mysp_CreateCustomer.
Stan
Liczba całkowita daleka od 0 do 254. Wartości ujemne w górę w stosunku do normy 1. Nie należy stosować zasad większych niż 252.
Jeśli w końcu powiem, że ten sam niestandardowy błąd pojawił się w wielu miejscach, użycie unikalnego mnóstwa statusów dla każdej lokalizacji może pomóc w ustaleniu, który fragment kodu powoduje błędy.
kontrowersje
Większość parametrów jest używanych, które zastępują parametry zdefiniowane w msg_str lub cele odpowiadające msg_id. Może również powinno być 0, aby zastąpić dodatkowe parametry, ale szeroki wybór parametrów zastępczych nie powinien przekraczać 23. Każdy parametr zastępczy może być lokalnym zminimalizowaniem lub jednym z następujących typów danych: tinyint, smallint, int, char, varchar, nchar, binarny, nvarchar, także , varbinary. Inne typy danych są ignorowane.
Opcja
Jest to konfigurowalny błąd i może to być dowolne z przekonań podążających za łóżkiem.
wartość | Opis |
---|---|
DZIENNIK | Błąd protokołu i błędny protokół i protokół narzędzia iPhone dla Microsoft Database Engine Instanceoft SQL Server. Obecnie rozmiar błędów przesiąkniętych w dzienniku błędów nie powinien przekraczać 440 bajtów. Tylko nowy członek wraz z trwałym łączem serwera sysadmin lub kontem z uprawnieniami ALTER TRACE może również określać LOG.
Dotyczy: serwera, bazy danych SQL-SQL |
TERAZ | Natychmiast wysyła komunikaty do zalecanego klienta.
Dotyczy: SQL Server, SQL Database |
błąd konfiguracji | ustaw @@ BŁĄD, a zatem ERROR_NUMBER na ścieżkę msg_id lub 50000, re
Przyspiesz teraz wydajność swojego komputera dzięki temu prostemu pobieraniu. RAISERROR to błąd programu SQL Server przenoszący wzorzec, który generuje komunikat o błędzie i prowadzi do obsługi błędów. RAISERROR może utworzyć własny post tutaj w sys. Widok lub opcja katalogu wiadomości może dynamicznie tworzyć wiadomości sprzedażowe. Powszechną sztuczką może być prawdopodobnie wymuszone dzielenie przez 0. To poprawia błąd i przerywa faktyczne badanie osoby oceniającej grę. RAISERROR (identyfikator_komunikatu, ważność, stan [, uzasadnienie [, n]]) [Z rozdzielczością [, n]];EXEC sp_addmessage @msgnum sugeruje 50005, @severity = 1, @msgtext oznacza niestandardowy komunikat o błędzie;
|