sp_dropmessage (Transact-SQL)

Applies to: SQL Server

Drops a specified user-defined error message from an instance of the SQL Server Database Engine. User-defined messages can be viewed using the sys.messages catalog view.

Transact-SQL syntax conventions

Syntax

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

Arguments

[ @msgnum = ] msgnum

The message number to drop. @msgnum is int, with a default of NULL. @msgnum must be a user-defined message that's a message number greater than 50000 (50,000).

[ @lang = ] N'lang'

The language of the message to drop. @lang is sysname, with a default of NULL. If all is specified, all language versions of @msgnum are dropped.

Return code values

0 (success) or 1 (failure).

Result set

None.

Permissions

Requires membership in the sysadmin and serveradmin fixed server roles.

Remarks

Unless all is specified for @lang, all localized versions of a message must be dropped before the U.S. English version of the message can be dropped.

Examples

A. Drop a user-defined message

The following example drops a user-defined message, number 50001, from sys.messages.

USE master;
GO
EXEC sp_dropmessage 50001;

B. Drop a user-defined message that includes a localized version

The following example adds a user-defined message, number 60000, which includes a localized version, then drops both variations of the message.

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. Drop a localized version of a user-defined message

The following example drops a localized version of a user-defined message, number 60000, without dropping the whole message.

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