확장 최소화
9명 중 0명이 도움이 되는 것으로 평가 - 이 항목 평가

sp_addmessage(Transact-SQL)

새 사용자 정의 오류 메시지를 SQL Server 데이터베이스 엔진 인스턴스에 저장합니다. sp_addmessage를 사용하여 저장한 메시지는 sys.messages 카탈로그 뷰를 사용하여 볼 수 있습니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙


sp_addmessage [ @msgnum = ] msg_id , [ @severity = ] severity , [ @msgtext = ] 'msg' 
     [ , [ @lang = ] 'language' ] 
     [ , [ @with_log = ] { 'TRUE' | 'FALSE' } ] 
     [ , [ @replace = ] 'replace' ] 
[ @msgnum = ] msg_id

메시지의 ID입니다. msg_idint이며 기본값은 NULL입니다. 사용자 정의 오류 메시지의 msg_id는 50,001에서 2,147,483,647 사이의 정수일 수 있습니다. msg_idlanguage의 조합은 고유해야 하며 지정한 언어에 대해 ID가 이미 존재하는 경우 오류가 반환됩니다.

[ @severity = ] severity

오류의 심각도입니다. severitysmallint이며 기본값은 NULL입니다. 유효한 수준은 1에서 25까지입니다. 심각도에 대한 자세한 내용은 데이터베이스 엔진 오류 심각도를 참조하십시오.

[ @msgtext = ] 'msg'

오류 메시지의 텍스트입니다. msgnvarchar(255)이며 기본값은 NULL입니다.

[ @lang = ] 'language'

메시지에 사용할 언어입니다. languagesysname이며 기본값은 NULL입니다. 한 서버에 여러 언어가 지원되므로 language는 각 메시지 작성에 사용된 언어를 지정합니다. language가 생략된 경우에는 해당 세션의 기본 언어가 사용됩니다.

[ @with_log = ] { 'TRUE' | 'FALSE' }

오류가 발생할 때 Windows 응용 프로그램 로그에 기록할지 여부입니다. @with_logvarchar(5)이며 기본값은 FALSE입니다. TRUE인 경우 오류가 항상 Windows 응용 프로그램 로그에 기록됩니다. FALSE인 경우 오류가 항상 Windows 응용 프로그램 로그에 기록되지는 않으며 오류가 어떻게 발생했는지에 따라 달라집니다. sysadmin 서버 역할의 멤버만 이 옵션을 사용할 수 있습니다.

ms178649.note(ko-kr,SQL.90).gif참고:
Windows 응용 프로그램 로그에 메시지가 기록된 경우에는 데이터베이스 엔진 오류 로그 파일에도 기록됩니다.

[ @replace = ] 'replace'

replace 문자열로 지정된 경우 기존의 오류 메시지를 새 메시지 텍스트와 심각도로 덮어씁니다. replacevarchar(7)이며 기본값은 NULL입니다. msg_id가 이미 존재하는 경우에는 반드시 이 옵션을 지정해야 합니다. 영어(미국)로 작성된 메시지를 대체한 경우에는 동일한 msg_id를 가진 다른 언어로 작성된 모든 메시지의 심각도가 대체됩니다.

0(성공) 또는 1(실패)

영어 버전이 아닌 SQL Server의 경우 영어(미국) 버전의 메시지가 이미 존재하고 있어야 다른 언어를 사용하여 메시지를 추가할 수 있습니다. 두 버전의 메시지에 대한 심각도는 일치해야 합니다.

매개 변수를 포함한 메시지를 지역화하는 경우에는 원래 메시지의 매개 변수와 일치하는 매개 변수 번호를 사용하십시오. 각 매개 변수 번호 뒤에는 느낌표(!)를 삽입하십시오.

원래 메시지 지역화된 메시지

'원래 메시지 param 1: %s,

param 2: %d’,

'지역화된 메시지 param 1: %1!,

param 2: %2!'

언어 구문이 다르므로 지역화된 메시지의 매개 변수 번호 순서가 원래 메시지의 경우와 다를 수 있습니다.

sysadminserveradmin 고정 서버 역할의 멤버 자격이 필요합니다.

1. 사용자 지정 메시지 정의

다음 예에서는 sys.messages에 사용자 지정 메시지를 추가합니다.

USE master
GO
EXEC sp_addmessage 50001, 16, 
   N'Percentage expects a value between 20 and 100. 
   Please reexecute with a more appropriate value.';
GO

2. 두 언어로 작성된 메시지 추가

다음 예에서는 영어(미국)로 된 메시지를 먼저 추가한 다음 동일한 메시지를 프랑스어로 추가합니다.

USE master;
GO
EXEC sp_addmessage @msgnum = 60000, @severity = 16, 
   @msgtext = N'The item named %s already exists in %s.', 
   @lang = 'us_english';

EXEC sp_addmessage @msgnum = 60000, @severity = 16, 
   @msgtext = N'L''??ent nomm?%1! existe d??dans %2!', 
   @lang = 'French';
GO

3. 매개 변수 순서 변경

다음 예에서는 영어(미국)로 된 메시지를 먼저 추가한 다음 매개 변수 순서를 변경하여 해당 지역 언어로 된 메시지를 추가합니다.

USE master;
GO

EXEC sp_addmessage 
    @msgnum = 60000, 
    @severity = 16,
    @msgtext = 
        N'This is a test message with one numeric
        parameter (%d), one string parameter (%s), 
        and another string parameter (%s).',
    @lang = 'us_english';

EXEC sp_addmessage 
    @msgnum = 60000, 
    @severity = 16,
    @msgtext = 
        -- In the localized version of the message,
        -- the parameter order has changed. The 
        -- string parameters are first and second
        -- place in the message, and the numeric 
        -- parameter is third place.
        N'Dies ist eine Testmeldung mit einem 
        Zeichenfolgenparameter (%3!),
        einem weiteren Zeichenfolgenparameter (%2!), 
        und einem numerischen Parameter (%1!).',
    @lang = 'German';
GO  

-- Changing the session language to use the U.S. English
-- version of the error message.
SET LANGUAGE us_english;
GO

RAISERROR(60000,1,1,15,'param1','param2') -- error, severity, state,
GO                                       -- parameters.

-- Changing the session language to use the German
-- version of the error message.
SET LANGUAGE German;
GO

RAISERROR(60000,1,1,15,'param1','param2') -- error, severity, state, 
GO                                       -- parameters.
이 정보가 도움이 되었습니까?
(1500자 남음)

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
© 2013 Microsoft. All rights reserved.