NSNotificationBatchDetails (Transact-SQL)

更新日期: 2006 年 4 月 14 日

为 Microsoft SQL Server Notification Services 应用程序生成通知批次详细信息报表。该报表包含有关某个指定的通知批次的信息,例如,生成通知批次的规则触发、通知批次中包含的通知。利用该存储过程可以解决与生成通知有关的问题,还可分析应用程序处理通知的进展情况。

语法

[ application_schema_name . ] NSNotificationBatchDetails 
    [ @NotificationClassName = ] 'notification_class_name',
    [ @NotificationBatchId = ] notification_batch_id

参数

  • [ @NotificationClassName = ] 'notification_class_name'
    通知类的名称。notification_class_name 的数据类型为 nvarchar(255),无默认值。
  • [ @NotificationBatchId = ] notification_batch_id
    用于标识通知批次的唯一标识符。notification_batch_id 的数据类型为 bigint,无默认值。

返回代码值

结果集

NSNotificationBatchDetails 生成三个结果集。第一个结果集提供通知批次的一般信息。

列名 数据类型 说明

RuleFiringId

int

生成通知批次的规则触发的唯一 ID。

StartGenerationTime

datetime

通知批次生成的起始日期和时间,以 UTC 时间(通用协调时间或格林尼治标准时间)表示。

EndGenerationTime

datetime

通知批次生成的结束日期和时间,以 UTC 时间表示。

GenerationTimeInMS

int

完成通知批次生成的时间(毫秒)。

NotificationBatchExpirationTime

datetime

通知批次的过期日期和时间,以 UTC 时间表示。时间过期后,将放弃任何剩余的未传递通知。无论重试计划如何,都不会再次尝试传递这些通知。如果该值为 NULL,则批没有过期时间。

NotificationCount

int

通知批次中的通知数。

StatusDescription

nvarchar(255)

通知批次的当前状态。

第二个结果集提供了如何在实例的传递通道中分发批中的通知的信息。

列名 数据类型 说明

DeliveryChannelName

nvarchar(255)

传递通道的名称。

LastDistributionStartTime

datetime

传递通道的名称。

NotificationsWithNoDeliveryAttempt

int

由此传递通道,分发服务器上一次传递来自此通知批次中通知的开始时间。

NotificationsSuccessfullyDelivered

int

分发服务器仍然必须由此通道传递的来自此通知批次的通知数。

NotificationsFailedToDeliver

int

由此传递通道传递的来自此通知批次的未送达通知数。

RetryCount

int

分发服务器拾取要通过此传递通道传递的通知批次的次数。

NextRetryTime

datetime

对于此通知批次,分发服务器下次尝试通过此传递通道传递其通知的时间。

第三个结果集提供了有关通知批次中通知的详细信息。

列名 数据类型 说明

NotificationId

bigint

通知批次中的通知的 ID。

SubscriberId

nvarchar(255)

通知的订阅方的 ID。

DeviceName

nvarchar(255)

通知的订阅方设备名称。

SubscriberLocale

nvarchar(10)

通知的区域设置的名称。

DeliveryStatus

nvarchar(255)

通知的当前传递状态的说明。

SentTime

datetime

上次尝试传递通知完成的日期和时间,以 UTC 时间表示。如果该值为 NULL,则表示未尝试传递通知,或尚未完成通知传递。

LinkedParentNotification

bigint

如果在摘要消息或多播消息中发送通知,则该值为摘要组或多播组中的第一个通知的 ID。

DeliveryChannel

nvarchar(255)

发送通知的传递通道的名称。

DeliveryAttempts

int

尝试传递通知的次数。

Notification_class_field_name

由应用程序定义

应用程序定义文件 (ADF) 中定义的通知类字段的名称。通知类中的每个字段由结果集中的列表示。

备注

创建实例时,Notification Services 将在应用程序数据库中创建 NSNotificationBatchDetails 存储过程。当您更新应用程序时,Notification Services 会重新编译此存储过程。

此存储过程位于应用程序的架构中,该架构由应用程序定义文件 (ADF) 的 SchemaName 元素指定。如果未提供架构名称,默认架构为 dbo

权限

执行权限默认授予 NSAnalysis 数据库角色、db_owner 固定数据库角色和 sysadmin 固定服务器角色的成员。

示例

以下示例针对 StockNotifications 通知类的通知批次 1 生成本节前面部分所述的三个结果集:

应用程序使用默认的 SchemaName 设置,这会将所有应用程序对象置于 dbo 架构中。

EXEC dbo.NSNotificationBatchDetails 
    @NotificationClassName = N'StockNotifications', 
    @NotificationBatchId = 1;

请参阅

参考

Notification Services 存储过程 (Transact-SQL)

其他资源

Notification Services 性能报告
SchemaName Element (ADF)

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本 历史记录

2006 年 4 月 14 日

已更改的内容:
  • 第二个结果集中的固定列说明。