sp_dropmessage (Transact-SQL)

適用対象:SQL Server

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

Transact-SQL 構文表記規則

構文

sp_dropmessage
    [ [ @msgnum = ] msgnum ]
    [ , [ @lang = ] N'lang' ]
[ ; ]

引数

[ @msgnum = ] msgnum

削除するメッセージ番号。 @msgnumは int で、既定値は NULL. @msgnumは、(50,000) を超える50000メッセージ番号であるユーザー定義メッセージである必要があります。

[ @lang = ] N'lang'

削除するメッセージの言語。 @langは sysname で、既定値は NULL. 指定allすると、@msgnumのすべての言語バージョンが削除されます。

リターン コードの値

0 (成功) または 1 (失敗)。

結果セット

なし。

アクセス許可

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

解説

@lang指定しない限りall、メッセージの米国英語バージョンを削除する前に、メッセージのすべてのローカライズされたバージョンを削除する必要があります。

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

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

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