Share via


sp_dropmessage (Transact-SQL)

SQL Server データベース エンジンのインスタンスから、指定したユーザー定義エラー メッセージを削除します。 ユーザー定義メッセージは、sys.messages カタログ ビューを使用して表示できます。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

sp_dropmessage [ @msgnum = ] message_number 
    [ , [ @lang = ] 'language' ]

引数

  • [ @msgnum = ] message_number
    削除するメッセージ番号を指定します。 message_number は、メッセージ番号が 50001 以上のユーザー定義のメッセージである必要があります。 message_number のデータ型は int で、既定値は NULL です。

  • [ @lang = ] 'language'
    メッセージを削除する言語です。 If all を指定した場合、message_number のすべての言語バージョンが削除されます。 language のデータ型は sysname で、既定値は NULL です。

戻り値

成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。

結果セット

ありません。

権限

sysadmin および serveradmin 固定サーバー ロールのメンバーシップである必要があります。

説明

language に all を指定しない限り、英語版のメッセージを削除するには、 そのメッセージのすべてのローカライズ版を削除する必要があります。

使用例

A. ユーザー定義メッセージを削除する

次の例では、sys.messages から、番号 50001 のユーザー定義メッセージを削除します。

USE master;
GO
EXEC sp_dropmessage 50001;

B. ローカライズ版を含むユーザー定義メッセージを削除する

次の例では、ローカライズ版を含む番号 60000 のユーザー定義メッセージを削除します。

USE master;
GO

-- Create a user-defined message in U.S. English
EXEC sp_addmessage 
    @msgnum = 60000,
    @severity = 16,
    @msgtext = N'The item named %s already exists in %s.', 
    @lang = 'us_english';

-- Create a localized version of the same message.
EXEC sp_addmessage 
    @msgnum = 60000,
    @severity = 16,
    @msgtext = N'L''élément nommé %1! existe déjà dans %2!',
    @lang = 'French';
GO

-- This statement will fail as long as the localized version
-- of the message exists.
EXEC sp_dropmessage 60000;
GO

-- This statement will drop the message.
EXEC sp_dropmessage
    @msgnum = 60000,
    @lang = 'all';
GO

C. ユーザー定義メッセージのローカライズ版を削除する

次の例では、全メッセージを削除せずに、番号 60000 のユーザー定義メッセージのローカライズ版を削除します。

USE master;
GO

-- Create a user-defined message in U.S. English
EXEC sp_addmessage 
    @msgnum = 60000,
    @severity = 16,
    @msgtext = N'The item named %s already exists in %s.', 
    @lang = 'us_english';

-- Create a localized version of the same message.
EXEC sp_addmessage 
    @msgnum = 60000,
    @severity = 16,
    @msgtext = N'L''élément nommé %1! existe déjà dans %2!',
    @lang = 'French';
GO
-- This statement will remove only the localized version of the 
-- message.
EXEC sp_dropmessage
    @msgnum = 60000,
    @lang = 'French';
GO

関連項目

参照

RAISERROR (Transact-SQL)

sp_addmessage (Transact-SQL)

sp_altermessage (Transact-SQL)

FORMATMESSAGE (Transact-SQL)

sys.messages (Transact-SQL)

システム ストアド プロシージャ (Transact-SQL)