Exportieren (0) Drucken
Alle erweitern
Erweitern Minimieren

FORMATMESSAGE (Transact-SQL)

Erstellt eine Meldung aus einer vorhandenen Meldung in sys.messages.Die Funktionalität von FORMATMESSAGE ähnelt der RAISERROR-Anweisung. RAISERROR gibt die Meldung jedoch direkt aus, während FORMATMESSAGE die bearbeitete Meldung zur weiteren Verarbeitung zurückgibt.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen


FORMATMESSAGE ( msg_number , [ param_value [ ,...n ] ] )

msg_number

Die ID der in sys.messages gespeicherten Meldung. Falls msg_number <= 13000 ist oder falls die Meldung in sys.messages nicht vorhanden ist, wird NULL zurückgegeben.

param_value

Ein Parameterwert, der in der Meldung verwendet wird. Hierbei kann es sich um mehrere Parameterwerte handeln. Die Werte müssen in der Reihenfolge angegeben werden, in der die Platzhaltervariablen in der Meldung vorkommen. Es können maximal 20 Werte angegeben werden.

Wie bei der RAISERROR-Anweisung ersetzt FORMATMESSAGE die Platzhaltervariablen in der Meldung mit den angegebenen Parameterwerten. Weitere Informationen zu zulässigen Platzhaltern in Fehlermeldungen und zum Bearbeitungsprozess finden Sie unter RAISERROR (Transact-SQL).

Hinweis Hinweis

FORMATMESSAGE kann nur für Meldungen verwendet werden, die mit sp_addmessage erstellt wurden.

FORMATMESSAGE sucht die Meldung in der aktuellen Sprache des Benutzers. Falls keine lokalisierte Version der Meldung vorhanden ist, wird die US-englische Version verwendet.

Für lokalisierte Meldungen müssen die angegebenen Parameterwerte den Parameterplatzhaltern in der US-englischen Version entsprechen. Das bedeutet, dass Parameter 1 in der lokalisierten Version mit dem Parameter 1 in der US-englischen Version übereinstimmen muss, Parameter 2 der lokalisierten Version muss mit Parameter 2 übereinstimmen usw.

In diesem Beispiel wird die hypothetische Meldung 50001 verwendet, die in sys.messages als "The number of rows in %s is %1d" gespeichert ist. In der FORMATMESSAGE-Anweisung werden für die Platzhalter die Werte Table1 und 5 eingesetzt. Die Ergebniszeichenfolge "The number of rows in Table1 is 5" wird in der lokalen Variablen @var1 gespeichert.

DECLARE @var1 VARCHAR(100)
SELECT @var1 = FORMATMESSAGE(50001, 'Table1', 5)

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft