I run script
EXEC sys.sp_addmessage
@msgnum = 60000
,@severity = 16
,@msgtext = N'Test error message № (%d), Module (%s), procedure (%s).'
,@lang = 'us_english',
@replace= 'replace' ;
GO
EXEC sys.sp_addmessage
@msgnum = 60000
,@severity = 16
,@msgtext = N'Test error message № (%d), Module (%s), procedure (%s).'
,@lang = 'Russian',
@replace= 'replace' ;
GO
set language us_english
PRINT FORMATMESSAGE(60000, 500, N'MyModule', N'MyProc');
set language russian
PRINT FORMATMESSAGE(60000, 500, N'MyModule', N'MyProc');
And Get unexpected second message
Changed language setting to us_english.
Test error message № (500), Module (MyModule), procedure (MyProc).
Параметры языка изменены на "русский".
Error: 60000, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.