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 的计算机操作系统中的当前本地时间和时区设置。
权限
执行权限默认授予 NSAnalysis 和 db_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
启用和禁用实例、应用程序或组件