更新日期: 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)
帮助和信息
更改历史记录
| 版本 | 历史记录 | 
|---|---|
| 2006 年 4 月 14 日 | 
 |