Câu hỏi đơn giản:
THROW 50000, 'Because of this ->%<- is this message invisible.', 1;
- bạn không thể vượt qua các tham số% s,% d như trong RAISERROR
- bạn phải sử dụng FORMATMESSAGE
- nhưng dù sao cũng đã thất bại nếu% không được nhân đôi (hiển thị đúng)
Đã thử nghiệm trên Microsoft SQL Server 2012 (SP1) 11.0.3381.0 (X64), 11.0.3000.0 (X64)
Ví dụ thế giới thực:
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)