SQL Server: „Text konnte nicht abgerufen werden“ – wie kann das Problem behoben werden?

SQL Server: „Text konnte nicht abgerufen werden“ – wie kann das Problem behoben werden?

Wenn SQL Server Berechtigungsfehler (oder andere Betriebssystemfehler) ausgibt, protokolliert es im Allgemeinen etwas in der Form "Cannot open file {blah}. Operating system error 3 (failed to retrieve text for this message)".

Die Frage ist ganz einfach: Was hindert SQL Server daran, den Fehlertext abzurufen? Ich gehe davon aus, dass es irgendwo ein Berechtigungsproblem ist, weiß aber nicht, welchen Mechanismus SQL verwendet, um OS-Fehlercodes in tatsächliche Textnachrichten zu übersetzen, damit dies überhaupt funktioniert.

NOTIZ:Ich frage nicht „Wie behebe ich den ursprünglichen Fehler?“ (nur für den Fall, dass jemand die Frage falsch liest), sondern „Wie bringe ich SQL Server dazu, die Betriebssystem-Fehlernummer erfolgreich in Text zu übersetzen, sodass ich nicht ständig nachschlagen oder mir merken muss, was die Betriebssystem-Fehlernummern bedeuten?“.

Dies ist einer von denen, die es wahrscheinlichIstes gibt eine Antwort, aber sie wird von all den Fragen übertönt, wie „Was bedeutet ein Betriebssystemfehler?“, und ich kann den richtigen Google-Zauberspruch nicht finden …

Antwort1

Es gibt wenige Gründe, warum dieFormatMessageschlägt fehl: Speichermangel, ein Lokalisierungsproblem oder eine beschädigte Betriebssysteminstallation. Ein OOM würde dies nicht immer verursachen, die Fehlermeldung würde richtig angezeigt werdenManchmal. Eine Gebietsschema-Nichtübereinstimmung würde dieses Problem durchgängig zeigen, ebenso wie eine beschädigte Betriebssysteminstallation. Da Ihr SQL-Fehler in scheinbar amerikanischem Englisch auftritt, gehe ich davon aus, dass Ihre SQL-Installation amerikanisches Englisch ist. In welcher Sprache ist Ihre Betriebssysteminstallation? Existiert der Ordner %SystemRoot%\System32\en-US? Wie wäre es mit %SystemRoot%\SysWOW64\en-US, und ist die SQL-Instanz eine 32-Bit-Installation?

verwandte Informationen