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'
    メッセージを削除する言語です。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