sp_dropmessage (Transact-SQL)

Удаляет заданное пользовательское сообщение об ошибке из экземпляра SQL Server Database Engine. Пользовательские сообщения можно просматривать с помощью представления каталога sys.messages.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

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

Аргументы

  • [ @msgnum = ] message_number
    Номер удаляемого сообщения. Аргумент message_number должен быть пользовательским сообщением с номером более 50000. Аргумент message_number имеет тип int и значение по умолчанию NULL.

  • [ @lang = ] 'language'
    Язык удаляемого сообщения. Если задано значение all, то удаляются версии сообщения message_number на всех языках. Аргумент language имеет тип sysname и значение по умолчанию NULL.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Нет.

Разрешения

Требует членства в предопределенных ролях сервера sysadmin и serveradmin.

Замечания

Если для аргумента language не задано значение all, то версию сообщения на языке «U.S. English» можно будет удалить только после удаления всех остальных локализованных версий сообщения.

Примеры

А. Удаление пользовательских сообщений

В следующем примере пользовательское сообщение с номером 50001 удаляется из представления каталога sys.messages.

USE master;
GO
EXEC sp_dropmessage 50001;

Б. Удаление пользовательского сообщения, у которого есть локализованная версия

В следующем примере удаляется пользовательское сообщение с номером 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

В. Удаление локализованной версии пользовательского сообщения

В этом примере удаляется только локализованная версия пользовательского сообщения с номером 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