FORMATMESSAGE(Transact-SQL)
sys.messages의 기존 메시지를 사용하여 메시지를 작성합니다. FORMATMESSAGE의 기능은 RAISERROR 문의 기능과 유사합니다. 단, RAISERROR는 메시지를 즉시 인쇄하는 반면 FORMATMESSAGE는 추가 처리를 위해 서식이 지정된 메시지를 반환합니다.
구문
FORMATMESSAGE ( msg_number , [ param_value [ ,...n ] ] )
인수
msg_number
sys.messages에 저장된 메시지의 ID입니다. msg_number가 <= 13000이거나 메시지가 sys.messages에 없는 경우 NULL을 반환합니다.param_value
메시지에 사용할 매개 변수 값입니다. 둘 이상의 매개 변수 값을 사용할 수 있습니다. 메시지에 자리 표시자 변수가 표시되는 순서대로 값을 지정해야 합니다. 값의 최대 개수는 20개입니다.
반환 유형
nvarchar
주의
FORMATMESSAGE는 RAISERROR 문과 유사하게 메시지의 자리 표시자 변수를 제공된 매개 변수 값으로 대체하여 메시지를 편집합니다. 오류 메시지에서 허용되는 자리 표시자와 편집 프로세스에 대한 자세한 내용은 RAISERROR(Transact-SQL)를 참조하십시오.
[!참고]
FORMATMESSAGE는 sp_addmessage를 사용하여 작성된 메시지에서만 실행됩니다.
FORMATMESSAGE는 사용자의 현재 언어로 된 메시지를 찾습니다. 메시지의 해당 언어 버전이 없으면 미국 영어를 사용합니다.
해당 언어 메시지의 경우 제공된 매개 변수 값이 반드시 미국 영어 버전의 매개 변수 자리 표시자와 일치해야 합니다. 즉, 해당 언어 버전의 매개 변수 1은 미국 영어 버전의 매개 변수 1과, 매개 변수 2는 매개 변수 2와 일치하는 방식으로 모두 일치해야 합니다.
예
다음 예에서는 sys.messages에 "%s의 행 개수는 %1d입니다"로 저장되어 있는 가설 메시지 50001을 사용합니다. FORMATMESSAGE는 매개 변수 자리 표시자를 Table1과 5로 대체합니다. 결과 문자열인 “Table1의 행 개수는 5입니다"가 로컬 변수 @var1에 저장됩니다.
DECLARE @var1 VARCHAR(100)
SELECT @var1 = FORMATMESSAGE(50001, 'Table1', 5)