NSScheduledSubscriptionList (Transact-SQL)

为 Microsoft SQL Server Notification Services 应用程序生成预定的订阅列表报表。此报表包含有关给定订阅者的所有预定订阅的信息。

结果将处理本地时间转换,并会将与区域设置有关的夏时制时间偏移变化考虑在内。当诊断订阅为何没有在预计时间生成通知时,该结果很有用。常常因用户未正确配置订阅信息而导致通知在意外时间生成。

语法

[ schema_name . ] NSScheduledSubscriptionList 
    [ @SubscriberId = ] 'subscriber_id',
    [ @StartDate = ] 'start_date' ]
    [, [ @EndDate = ] 'end_date' ]
    [, [ @Language = ] 'language_code' ]

参数

[ @SubscriberId = ] 'subscriber_id'

用于在 Notification Services 实例中表示订阅方的唯一标识符。subscriber_id 的数据类型为 nvarchar(255),无默认值。

[ @StartDate = ] 'start_date'

以 UTC(通用协调时间或格林尼治标准时间)表示的预定订阅的起始日期和时间。start_date 的数据类型为 datetime,无默认值。

[ @EndDate = ] 'end_date'

以 UTC 表示的预定订阅的结束日期和时间。如果未指定(或为 NULL),则默认值为 start_date 值加一天。end_date 的数据类型为 datetime

[ @Language = ] 'language_code'

一种 Notification Services 语言,且指定了要在报表中包括的语言。language_code 用于从实例数据库的 NSTimeZoneNames 表中返回时区子集。language_code 的数据类型为 nvarchar(6),默认值为 en(英语)。

有关 language_code 值的完整列表,请参阅Subscriber Locale Codes

返回代码值

0(成功)或 1(失败)

结果集

NSScheduledSubscriptionList 结果集依次按 SubscriptionClassName 值和 SubscriptionId 值排序。

列名 数据类型 说明

SubscriberEnabled

tinyint

指示当前是否启用了订阅方。非零值指示启用了订阅方,可生成通知。

SubscriptionClassName

nvarchar(255)

包含订阅方的预定订阅的通知类的名称。

SubscriptionId

bigint

订阅方的订阅 ID。

SubscriptionEnabled

tinyint

指示是否启用了订阅。非零值指示启用了订阅,可生成通知。

ScheduleText

nvarchar(2048)

用户提供的用于订阅的预定文本。

UtcDateTime

datetime

以 UTC 表示的处理预定订阅的日期和时间。如果该值为 NULL,则表示订阅的计划时间不在指定的时间范围内。

LocalTimeZone

nvarchar(100)

用于订阅的本地时区的名称。

Observing

nvarchar(100)

指示订阅是否考虑夏时制时间。返回的文本字符串为特定于时区的字符串。

LocalDateTime

datetime

预定订阅的本地日期和时间。该日期和时间指示时区使用的是夏时制时间还是标准时间。如果该值为 NULL,则表示订阅的计划时间不在指定的时间范围内。

备注

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

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

若要确定当前 UTC 日期和时间,请在 SQL Server Management Studio 中运行 SELECT GETUTCDATE()。当前的 UTC 时间派生自运行 SQL Server 的计算机操作系统中的当前本地时间和时区设置。

权限

执行权限默认授予 NSAnalysisdb_owner 数据库角色以及 sysadmin 固定服务器角色的成员。

示例

获取安排在特定日期的订阅

以下示例显示如何为订阅方 karen 生成 2004 年 5 月 24 日的所有预定订阅的报表。

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

EXEC dbo.NSScheduledSubscriptionList 
    @SubscriberId = N'karen', 
    @StartDate = '2004-05-24', 
    @EndDate = '2004-05-24 23:59:59';

B. 获取安排在特定时间段的订阅

以下示例显示如何为订阅方 karen 生成前两天的所有预定订阅的报表。

如 ADF 的 SchemaName 元素中所指定的,此示例中,存储过程(类似于所有其他应用程序对象)位于 Stock 架构中。

DECLARE @start datetime;
SET @start = DATEADD(day, -2, GETUTCDATE());
EXEC Stock.NSScheduledSubscriptionList 
    @SubscriberId = N'karen', 
    @StartDate = @start;

请参阅

参考

Notification Services 存储过程 (Transact-SQL)

其他资源

Notification Services 性能报告
Subscriber Locale Codes
启用和禁用实例、应用程序或组件

帮助和信息

获取 SQL Server 2005 帮助