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.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • msg_number
    Die ID der in sys.messages gespeicherten Nachricht. 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).

FORMATMESSAGE sucht die Meldung in der aktuellen Sprache des Benutzers. Wenn es keine lokalisierte Version der Meldung gibt, wird die Version für Englisch (USA) verwendet.

Für lokalisierte Meldungen müssen die angegebenen Parameterwerte den Parameterplatzhaltern in der Version für Englisch (USA) entsprechen. Das heißt, Parameter 1 in der lokalisierten Version muss Parameter 1 in der Version für Englisch (USA) entsprechen, Parameter 2 in der lokalisierten Version muss Parameter 2 in der Version für Englisch (USA) entsprechen usw.

Beispiele

Im folgenden Beispiel wird eine Replikationsmeldung mit dem Code 20009 verwendet, die mit folgendem Wortlaut in sys.messages gespeichert ist: "Der '%s'-Artikel konnte nicht zur '%s'-Veröffentlichung hinzugefügt werden." In der FORMATMESSAGE-Anweisung werden für die Parameterplatzhalter die Werte First Variable und Second Variable eingesetzt. Die Ergebniszeichenfolge "Der 'First Variable'-Artikel konnte nicht zur 'Second Variable'-Veröffentlichung hinzugefügt werden" wird in der lokalen Variablen @var1 gespeichert.

SELECT text FROM sys.messages WHERE message_id = 20009 AND language_id = 1031;
DECLARE @var1 VARCHAR(200); 
SELECT @var1 = FORMATMESSAGE(20009, 'First Variable', 'Second Variable'); 
SELECT @var1;

Siehe auch

Verweis

THROW (Transact-SQL)

sp_addmessage (Transact-SQL)

sys.messages (Transact-SQL)

Systemfunktionen (Transact-SQL)

RAISERROR (Transact-SQL)