sp_dropmessage (Transact-SQL)
适用范围:SQL Server
从 SQL Server 数据库引擎实例中删除指定的用户定义错误消息。 可以使用目录视图查看 sys.messages
用户定义的消息。
语法
sp_dropmessage
[ [ @msgnum = ] msgnum ]
[ , [ @lang = ] N'lang' ]
[ ; ]
参数
[ @msgnum = ] msgnum
要删除的消息编号。 @msgnum为 int,默认值为 NULL
. @msgnum 必须是大于 (50,000) 的消息编号 50000
的用户定义消息。
[ @lang = ] N'lang'
要删除的消息的语言。 @lang为 sysname,默认值为 NULL
. 如果all
已指定,则会删除@msgnum的所有语言版本。
返回代码值
0
(成功)或 1
(失败)。
结果集
无。
权限
需要 sysadmin 和 serveradmin 固定服务器角色的成员身份。
注解
除非 all
为 @lang指定,否则必须先删除邮件的所有本地化版本,然后才能删除该邮件的美国英语版本。
示例
A. 删除用户定义的消息
以下示例从中删除用户定义的消息、数字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