sp_dropmessage (Transact-SQL)

Quita un mensaje de error definido por el usuario especificado de una instancia del SQL Server Database Engine (Motor de base de datos de SQL Server). Los mensajes definidos por el usuario se pueden ver con la vista de catálogo sys.messages.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • [ @msgnum = ] message_number
    Es el número del mensaje que se va a quitar. message_number debe ser un mensaje definido por el usuario con un número de mensaje superior a 50000. message_number es de tipo int y su valor predeterminado es NULL.

  • [ @lang = ] 'language'
    Es el idioma del mensaje que se va a quitar. Si se especifica all, se quitan las versiones en todos los idiomas de message_number. language es de tipo sysname y su valor predeterminado es NULL.

Valores de código de retorno

0 (correcto) o 1 (error)

Conjuntos de resultados

Ninguno.

Permisos

Requiere la pertenencia a las funciones fijas de servidor sysadmin y serveradmin.

Comentarios

A menos que se especifique all para language, todas las versiones traducidas de un mensaje se deben quitar para poder quitar a su vez la versión en inglés (EE.UU.) del mensaje.

Ejemplos

A. Quitar un mensaje definido por el usuario

En el ejemplo siguiente se quita un mensaje definido por el usuario, el número 50001, de sys.messages.

USE master;
GO
EXEC sp_dropmessage 50001;

B. Quitar un mensaje definido por el usuario que incluya una versión traducida

En el ejemplo siguiente se quita un mensaje definido por el usuario (número 60000) que incluye una versión traducida del mensaje.

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. Quitar una versión traducida de un mensaje definido por el usuario

En el ejemplo siguiente se quita una versión traducida de un mensaje definido por el usuario, el número 60000, sin quitar todo el mensaje.

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