Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
Fel som genereras av Microsoft SQL Server Database Engine har de attribut som beskrivs i följande tabell.
Attribut | Beskrivning |
---|---|
Felnummer | Varje felmeddelande har ett unikt felnummer. |
Felmeddelandesträng | Felmeddelandet innehåller diagnostikinformation om orsaken till felet. Många felmeddelanden har ersättningsvariabler där information, till exempel namnet på objektet som genererar felet, infogas. |
Allvarlighet | Allvarlighetsgraden anger hur allvarligt felet är. Fel med låg allvarlighetsgrad, till exempel 1 eller 2, är informationsmeddelanden eller varningar på låg nivå. Fel med hög allvarlighetsgrad indikerar problem som bör åtgärdas så snart som möjligt. Mer information om allvarlighetsgrader finns i Databasmotorns fels allvarlighetsgrader. |
Stat | Vissa felmeddelanden kan genereras vid flera punkter i koden för databasmotorn. Till exempel kan ett 1105-fel genereras för flera olika villkor. Varje specifikt villkor som genererar ett fel tilldelar en unik tillståndskod. När du visar databaser som innehåller information om kända problem, till exempel Microsoft Knowledge Base, kan du använda tillståndsnumret för att avgöra om det registrerade problemet är detsamma som det fel som du har påträffat. Om en kunskapsbasartikel till exempel beskriver ett 1105-fel som har tillståndet 2 och 1105-felmeddelandet som du fick hade tillståndet 3, har felet förmodligen en annan orsak än det som rapporterades i artikeln. En Microsoft-supporttekniker kan också använda tillståndskoden från ett fel för att hitta platsen i källkoden där felkoden genereras. Den här informationen kan ge ytterligare idéer om hur du diagnostiserar problemet. |
Procedurnamn | Är namnet på den lagrade proceduren eller utlösaren där felet har inträffat. |
Radnummer | Anger vilken instruktion i en batch, lagrad procedur, utlösare eller funktion som genererade felet. |
Alla system- och användardefinierade felmeddelanden i en instans av databasmotorn finns i sys.messages katalogvy. Du kan använda RAISERROR-instruktionen för att returnera användardefinierade fel till ett program.
Alla databas-API:er, till exempel Microsoft .NET Framework SQLClient namnområde, ActiveX Data Objects (ADO), OLE DB och Open Database Connectivity (ODBC), rapporterar de grundläggande felattributen. Den här informationen innehåller felnumret och meddelandesträngen. Alla API:er rapporterar dock inte alla andra felattribut.
Information om ett fel som inträffar i räckvidden för TRY-blocket i en TRY...CATCH-konstruktion kan erhållas i Transact-SQL-kod med hjälp av funktioner som ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY och ERROR_STATE i räckvidden för det associerade CATCH-blocket. Mer information finns i TRY... CATCH (Transact-SQL).
Exempel
Följande exempel frågar sys.messages
katalogvyn för att returnera en lista över alla system- och användardefinierade felmeddelanden i databasmotorn som har engelsk text (1033
).
SELECT
message_id,
language_id,
severity,
is_event_logged,
text
FROM sys.messages
WHERE language_id = 1033;
Mer information finns i sys.messages (Transact-SQL).
Se även
sys.messages (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
TRY... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)