sp_dropmessage (Transact-SQL)

適用対象: SQL サーバー

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

Transact-SQL 構文表記規則

構文

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

引数

[ @msgnum = ] msgnum

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

[ @lang = ] N'lang'

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

リターン コードの値

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

結果セット

なし。

アクセス許可

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

解説

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

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

次の例では、ユーザー定義のメッセージ番号 50001sys.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