xp_findnextmsg (Transact-SQL)
接受输入的邮件 ID 并返回输出的邮件 ID。为了处理 Microsoft SQL Server 收件箱中的邮件,需要将 xp_findnextmsg 与 sp_processmail 配合使用。
注意 |
---|
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 |
语法
xp_findnextmsg [ [ @type= ] type ]
[ , [ @unread_only= ] 'unread_value' ]
[ , [ @msg_id= ] 'message_id' [ OUTPUT ] ]
参数
[ @type=] type
基于以下 MAPI 定义的输入邮件类型:IP[M|C].Vendorname.subclass
如果 type 为 NULL,则以 IPM 开头的邮件类型将显示在邮件客户端的收件箱中,并通过 xp_findnextmsg 查找或读取。以 IPC 开头的邮件类型不会显示在邮件客户端的收件箱中,必须通过设置 type 参数来查找或读取。默认值为 NULL。SQL Mail 支持 IPM 和 IPC 邮件类型。
[ @unread_only=] 'unread_value'
指示是否仅考虑未读 (N'TRUE') 邮件。默认值为 N'FALSE',即考虑所有邮件。unread_value 的数据类型为 nvarchar(5)。[ @msg_id=] 'message_id'
一个输入输出参数,用于指定输入时的邮件字符串和输出时的下一封邮件的字符串。如果输入的 message_id 为 NULL,那么在默认情况下,输出 @msg_id 将是收件箱中最新传递的邮件的 ID。message_id 的数据类型为 varchar(255),默认值为 NULL。OUTPUT
如果已指定,message_id 将放在输出参数中。如果未指定,则 message_id 将作为单列、单行结果集返回。
返回代码值
0(成功)或 1(失败)
结果集
如果向 xp_findnextmsg 传递有效的邮件 ID,则可返回邮件。
如果 @msg_id 是 NULL,则 xp_findnextmsg 返回以下结果集。
列名 |
数据类型 |
说明 |
---|---|---|
Message ID |
varchar(255) |
下一封邮件的邮件 ID。 |
注释
除了无效参数以外,所有错误都将记录到 Microsoft Windows 应用程序日志中。
权限
要求具有 sysadmin 固定服务器角色的成员身份,但 EXECUTE 权限可以授予其他用户。不过,出于安全考虑,建议将此存储过程的权限仅授予 sysadmin 固定服务器角色的成员。
示例
以下示例将在搜索下一个邮件 ID(仅限未读邮件)时检索状态。xp_findnextmsg 返回的值将置于局部变量 @message_id 中。
DECLARE @status int, @message_id varchar(255) ;
EXEC @status = xp_findnextmsg @msg_id = @message_id OUTPUT ;