Einfache Frage:
THROW 50000, 'Because of this ->%<- is this message invisible.', 1;
- Sie können die Parameter% s,% d nicht wie in RAISERROR übergeben
- Sie müssen FORMATMESSAGE verwenden
- aber THROW ist trotzdem fehlgeschlagen, wenn% nicht verdoppelt wird (korrekte Anzeige)
Getestet unter Microsoft SQL Server 2012 (SP1) 11.0.3381.0 (X64), 11.0.3000.0 (X64)
Beispiel aus der realen Welt:
DECLARE @ProcParam VARCHAR(30) = 'Hehe%x!';
DECLARE @Message VARCHAR(500) = FORMATMESSAGE('Procedure input %s is wrong', @ProcParam);
PRINT 'Message: ' + @Message;
THROW 50000, @Message, 1;
char(32)nach dem% setzen, die Nachricht (ohne%)