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 の値に 1 日を加えた日時となります。end_date のデータ型は datetime です。
[ @Language =] 'language_code'
Notification Services がサポートする言語から、レポートに含める言語を指定します。language_code は、インスタンス データベースの NSTimeZoneNames テーブルからタイム ゾーンのサブセットを取得するために使用されます。language_code のデータ型は nvarchar(6) で、既定値は "ja" (日本語) です。
language_code の値の完全な一覧については、「サブスクライバ ロケール コード」を参照してください。
結果セット
NSScheduledSubscriptionList の結果セットの値は、最初に SubscriptionClassName の順で並べ替えられ、次に SubscriptionId の順で並べ替えられます。
列名 | データ型 | 説明 |
---|---|---|
SubscriberEnabled |
tinyint |
サブスクライバが現在有効になっているかどうかを示す値。0 以外の値の場合は有効になっており、通知を生成できます。 |
SubscriptionClassName |
nvarchar(255) |
サブスクライバの定期的なサブスクリプションが含まれるサブスクリプション クラスの名前。 |
SubscriptionId |
bigint |
このサブスクライバのサブスクリプションの ID。 |
SubscriptionEnabled |
tinyint |
このサブスクリプションが有効になっているかどうかを示す値。0 以外の値の場合は有効になっており、通知を生成できます。 |
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 固定サーバー ロールのメンバに与えられています。
戻り値
0 (成功) または 1 (失敗)
例
A. 特定の日の定期的なサブスクリプションを取得する
次の例では、サブスクライバ "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" を対象に、最近 2 日間のすべての定期的なサブスクリプションに関するレポートを生成します。
この例では、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 パフォーマンス レポート
サブスクライバ ロケール コード
インスタンス、アプリケーション、またはコンポーネントの有効化および無効化