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.
Syntax
FORMATMESSAGE ( msg_number , [ param_value [ ,...n ] ] )
Argumente
- 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.
Rückgabetypen
nvarchar
Hinweise
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: |
---|
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.
Beispiele
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)
Siehe auch
Verweis
sp_addmessage (Transact-SQL)
sys.messages (Transact-SQL)
Systemfunktionen (Transact-SQL)
RAISERROR (Transact-SQL)