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 |
Идентификатор подписки для подписчика. |
SubscriptionEnabled |
tinyint |
Указывается, включена ли подписка. Ненулевое значение указывает на то, что подписка включена и может формировать уведомления. |
ScheduleText |
nvarchar(2048) |
Предоставляемый пользователем текст расписания для подписки. |
UtcDateTime |
datetime |
Дата и время в формате UTC, когда должна обрабатываться запланированная подписка. Если значение равно NULL, у подписки нет запланированного момента времени, попадающего в указанный диапазон. |
LocalTimeZone |
nvarchar(100) |
Имя местного часового пояса для подписки. |
Observing |
nvarchar(100) |
Указывается, учитывается ли в подписке летнее (зимнее) время. Возвращаемая текстовая строка зависит от определенного часового пояса. |
LocalDateTime |
datetime |
Местные дата и время для запланированной подписки. Дата и время определяют, указывается ли часовой пояс в летнем (зимнем) времени или в стандартном времени. Если значение равно NULL, у подписки нет запланированного момента времени, попадающего в указанный диапазон. |
Замечания
Службы Notification Services создают хранимую процедуру NSScheduledSubscriptionList в базе данных при создании экземпляра. При обновлении приложения службы Notification Services перекомпилируют хранимую процедуру.
Эта хранимая процедура находится в схеме приложения, которая задана элементом SchemaName файла определения приложения (ADF). Если имя схемы не задано, схемой по умолчанию является dbo.
Чтобы определить текущую дату и время в формате UTC, выполните инструкцию SELECT GETUTCDATE() в среде SQL Server Management Studio. Текущее время в формате UTC получается из текущего местного времени и настройки часового пояса в операционной системе компьютера, на котором запущен SQL Server.
Разрешения
Разрешения на выполнение по умолчанию для членов ролей базы данных NSAnalysis и базы данных db_owner, а также для членов фиксированной серверной роли sysadmin.
Примеры
A. Получение подписок, запланированных на определенную дату
В следующем примере показывается, как можно сформировать отчет обо всех подписках, запланированных на 24 мая 2004 г. для подписчика «karen».
Приложение использует настройки по умолчанию SchemaName, которые помещают все объекты приложения в схему dbo.
EXEC dbo.NSScheduledSubscriptionList
@SubscriberId = N'karen',
@StartDate = '2004-05-24',
@EndDate = '2004-05-24 23:59:59';
Б. Получение подписок, запланированных на определенный период времени
В следующем примере показывается, как можно сформировать отчет обо всех подписках, запланированных на два последних прошедших дня для подписчика «karen».
В этом примере хранимая процедура (как и все остальные объекты приложения) находится в схеме Stock, как указано в элементе SchemaName файла ADF.
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
Включение и отключение экземпляров, приложений или компонентов