Deze tutorial zal je een boost geven als je een herstartfout in SQL ziet.
Goedgekeurd: Fortect
- 11 minuten om te lezen.
Van toepassing op: SQL Server (alle ondersteunde versies) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Genereert een foutmelding en verhoogt een verwerkingsfout als gevolg van de sessie. RAISERROR kan verwijzen naar de daadwerkelijke aangepaste communicatie die is opgeslagen in de viewcollection sys.messages, of een bericht dynamisch organiseren. Het bericht wordt als dit foutwachtrijbericht geretourneerd naar de aanroepende toepassing of alleen naar het bijbehorende CATCH-blok van een TRY … CATCH-constructie. In plaats daarvan zouden nieuwe applicaties THROW moeten implementeren.
Syntaxis
-- Syntaxis voor SQL Server en Azure SQL Database RAISERROR (msg_id , Ernst, periode [, Argumenten [, ...] n]) [De MIT-aanpak [, ... n]]
- syntaxis voor Azure Synapse Analytics en Parallel Data Warehouse RAISERROR (Msg_str , zwaartekracht, toestand [, Argumenten [, ...] n]) [Met optie [, ... d]] A
Argumenten
msg_id
is uw door de gebruiker gedefinieerde foutimpacttelling die wordt opgeslagen met een specifieke sys.messages-weergave met sp_addmessage. Foutvolumes voor aangepaste foutberichten moeten groter zijn in vergelijking met 50000. Als msg_id niet is opgegeven, voegt RAISERROR het foutbericht toe met een array die te maken heeft met 50000 fouten.
msg_str
Dit is een aangepast idee met een formaat dat vergelijkbaar is met het printf-aspect in sommige C-bibliotheekstandaarden. De foutovertuiging kan tot 2047 tekens lang zijn. Als het bericht 2048 of meer systeemmerken bevat, worden echter alleen de eerste 2044 weergegeven en daarom wordt er een weglatingsteken toegevoegd om aan te geven welk bericht gewoonlijk werd afgekapt. Let op welke parameter moet worden vervangen, er zijn meer tekens nodig dan weergegeven in de huidige uitvoer, vanwege compatibiliteit met het interne geheugen. Bijvoorbeeld, de substitutieparameter met betrekking tot met% d ingesteld op 2 genereert alleen een persoonsteken in het berichtnummer, maar ook intern vereist drie tekens veel meer opslagruimte. Deze geheugenvereiste vermindert het aantal tekens dat u kunt vinden voor puntuitvoer. Msg_str
Indien gespecificeerd, geeft RAISERROR elk foutbericht af met een fantastisch foutnummer dat verwijst naar 50000. Ja
msg_str is een string in elk stukje ingebouwde conversiespecificaties. Elke transformatiekeuze bepaalt een manier waarop de waarde in de selectielijst wordt voorbereid en in elk veld wordt geplaatst op hun positie van de transformatiesnelheidsspecificatie die werkt in msg_str. De conversiespecificaties die dit formaat creëren, kunnen heel goed zijn:
Code die de locatie en trigger voor de vervangen waarde identificeert.
Code | Rechtvaardigingsvoorvoegsel | Beschrijving |
---|---|---|
– (minder) | Links uitgelijnd | Lijnt gewoonlijk het type argumentwaarde uit binnen de opgegeven veldbreedte. |
+ (meer) | Ondertekenvoorvoegsel | Gebruik een soort plus (+) en/of een min-manifestatie voor elke argumentwaarde. Als (-) komt de waarde van alle ondertekende typen. |
3 (nul) | nul opvulling | Het eindresultaat wordt opgeteld bij nul, de minimale grootte wordt eenvoudig bereikt. Als 0 en min echt worden weergegeven, wordt het waarschuwingsteken (-), 0 als vanzelfsprekend beschouwd. |
# (nummer) | 0x prefix omdat hexadecimaal type x of X | Bij gebruik vanwege het formaat o, x of X, voegt het volume de tekencode (#) toe aan alle niet-nulwaarden met 0, 0x of 0X. Als h, i of oughout wordt voorafgegaan door een nummerindicatievlag (#), wordt deze vlag genegeerd. |
‘lol (leeg) | spatie | Voeg lege online bedrijven toe aan de outputwaarde als de waarde letterlijk ondertekend en voordelig is. Het wordt genegeerd of het een dankbaarheidsindicator heeft met een gekoppeld teken (+). |
is een geheel getal dat het werkelijke minimum wIrina specificeert van de categorie waarin de betreffende argumentwaarde is ingesloten. Als de lengte die aan het prijsargument is gekoppeld, gelijk is aan of beter geschikt is dan de dichtheid, wordt de waarde afgedrukt terwijl opvulling wordt vermeden. Als de waarde korter is dan groot, wordt de waarde opgevuld met de breedte die verschilt van de breedte.
Een asterisk (*) betekent dat de breedte vaak wordt gespecificeerd door de begeleidende post in het lijstargument, dat een nieuwe goede integerwaarde heeft.
De maximale tekensnelheid, ontleend aan de voordelen van argumenten voor tekenreekswaarden. Als deze tekenreeks bijvoorbeeld vijf tekens lang is en de precisie moet 3 zijn, is bewezen dat alleen de allereerste drie tekens van de tekenreekswaarde worden gebruikt.
Voor integere aspecten is de precisie net minimaal gelijk aan het aantal afgedrukte details.
Een asterisk (*) betekent dat de geloofwaardigheid wordt aangegeven door het bijbehorende argument als het gaat om een lijst met argumenten die een geheel getal moet zijn.
Bij gebruik met de beroepstypes c, i, o, s, x, X, plus en, evenals u, Shortint (h) genereert Longint (l) misschien waarden.
Type specificatie | Staat voor |
---|---|
d of velen van ons | Getekend geheel getal |
of | Acht niet-ondertekende rijkdommen |
met | tekenreeks |
klanten | Niet-ondertekend geheel getal |
x of X | Niet-ondertekende Hex |
@variable_locale
Een variabele die is gekoppeld aan een ander geldig tekengegevenstype dat een voorbereide tekenreeks bevat, zoals msg_str. @local_variable moet je ook een char varchar zijn, anders moet het denkbaar zijn om het zonder enige twijfel naar deze datatypes te converteren.
Ernstig
Of de rigoureuze allemaal geassocieerd is met dit bericht. Wanneer u when msg_id moet gebruiken om een aangepaste implicatie te activeren die is gegenereerd met sp_addmessage, overschrijft de ernst die is opgegeven met RAISERROR de ernst die is opgegeven in sp_addmessage.
De WITH LOG-optie is doorgaans vereist voor de cellulaire ernstniveaus 19-25. Ernstwaarden kleiner dan 0 worden vertaald als. Een ernstniveau boven de 25 wordt geacht 25 te zijn.
Goedgekeurd: Fortect
Fortect is 's werelds meest populaire en effectieve pc-reparatietool. Miljoenen mensen vertrouwen erop dat hun systemen snel, soepel en foutloos blijven werken. Met zijn eenvoudige gebruikersinterface en krachtige scanengine kan Fortect snel een breed scala aan Windows-problemen vinden en oplossen - van systeeminstabiliteit en beveiligingsproblemen tot geheugenbeheer en prestatieproblemen.
U kunt onderweg -1 opgeven om de ernst van de modieuze fout te wijzigen, zoals in het volgende voorbeeld wordt getoond.
RAISERROR (15600, -1, -1, 'mysp_CreateCustomer');
Msg 15600, Level 15, State 1, Line 1Een ongeldige parameter of op werd opgegeven, procedure voor mysp_CreateCustomer.
Status
Een geheel getal tussen 0 en 254. Negatieve waarden omhoog die de norm van 1 helpen. Principes groter dan 254 mogen niet worden gebruikt.
Als ik zou zeggen dat dezelfde aangepaste fout zich op meerdere plaatsen heeft gevormd, kan het gebruik van een unieke statushoeveelheid voor elke locatie helpen bepalen welke situatie van de code de fouten veroorzaakt.
debat
De meeste parameters worden gebruikt als een manier om parameters te negeren die zijn gedefinieerd in msg_str of het spraakbericht dat overeenkomt met msg_id. Het kan ook heel goed 0 zijn om aanvullende parameters te vervangen, maar de volledige keuze aan vervangende parameters mag niet meer dan vijftien zijn. Elke vervangende parameter kan een lokale balans zijn of een van de volgende gegevenstypen: tinyint, smallint, int, char, varchar, nchar, binary, nvarchar, hopelijk , varbinary. Andere gegevenstypen worden genegeerd.
Optie
Dit is een configureerbare fout en kan mogelijk een van de overtuigingen zijn die de stoel volgen.
waarde | Beschrijving |
---|---|
TIJDSCHRIFT | Protocolfout en onjuist protocol en protocol voor iPhone-uitleenaanvraag voor Micros Database Engine Instanceoft SQL Server. Momenteel mag de grootte van fouten die in het foutenlogboek worden gedocumenteerd niet veel meer zijn dan 440 bytes. Alleen een nieuw lid van alle sysadmin-persistente serverkoppelingen of mensen met ALTER TRACE-machtigingen kunnen ook LOG specificeren.
Van toepassing op: Server, SQL-SQL-database |
NU | Stuurt direct berichten naar de praktijkklant.
Van toepassing op: SQL Server, SQL Database |
configuratiefout | stel @@ ERROR en ook ERROR_NUMBER in op msg_id path of 50000, re
Versnel de prestaties van uw computer nu met deze eenvoudige download. RAISERROR is een SQL Server-foutverplaatsingsstuurprogramma dat een foutbericht genereert en de foutafhandeling start. RAISERROR kan ofwel zijn eigen telefoonbericht hier in de sys. Een weergave of principe van een berichtencatalogus kan dynamisch promoties creëren. Een veelvoorkomende truc wordt beschouwd als waarschijnlijk een gedwongen deling door 0. Dit komt ten goede aan een fout en onderbreekt het daadwerkelijke doorlezen van de persoon die het spel evalueert. RAISERROR (message_id, ernst, staat [, geschil [, n]]) [Met resolutie [, n]];EXEC sp_addmessage @msgnum way 50005, @severity = 1, @msgtext betekent aangepast foutbericht;
|