Поделиться через


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 должно быть определяемым пользователем сообщением, которое больше 50000 (50 000).

[ @lang = ] N'lang'

Язык сообщения, который нужно удалить. @lang — sysname с значением по умолчаниюNULL. Если all задано, удаляются все языковые версии @msgnum .

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

0 (успешно) или 1 (сбой).

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

Нет.

Разрешения

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

Замечания

Если all для @lang не указано, все локализованные версии сообщения должны быть удалены до удаления версии сообщения на английском языке США.

Примеры

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

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