Freigeben über


Definieren des Benachrichtigungsschemas

Abonnementregeln fügen Benachrichtigungen in eine Benachrichtigungssicht ein. Hierbei handelt es sich um eine Sicht für die Benachrichtigungstabelle. Sie wird nach der Benachrichtigungsklasse benannt. Die Schemas der Sicht und der zugrunde liegenden Tabelle werden von dem Benachrichtigungsklassenschema abgeleitet. Sie definieren die Felder, aus denen dieses Schema besteht, in der Benachrichtigungsklasse.

In diesem Thema werden die Standardfelder, die von Notification Services dem Schema hinzugefügt werden, und die Vorgehensweise zur Erstellung benutzerdefinierter Felder, einschließlich benutzerdefinierter berechneter Felder, für Benachrichtigungsdaten beschrieben.

Standardbenachrichtigungsfelder

Beim Erstellen der Tabelle, in der Benachrichtigungen für eine Benachrichtigungsklasse gespeichert werden, erstellt Notification Services eine Spalte in der Tabelle für jedes deklarierte Benachrichtigungsfeld und fügt fünf andere Spalten hinzu, die für die Formatierung und Übermittlung von Benachrichtigungen verwendet werden:

ms172546.note(de-de,SQL.90).gifHinweis:
Definieren Sie die folgenden Felder nicht im Benachrichtigungsklassenschema. Andernfalls wird beim Erstellen der Anwendung aufgrund von doppelten Felddefinitionen ein Fehler erzeugt.
  • NotificationId ist eine Spalte vom Typ bigint. Notification Services stellt einen Wert für dieses Feld für jede Benachrichtigung bereit. Der Wert ist innerhalb der Benachrichtigungsklasse eindeutig.
  • NotificationBatchId ist eine Spalte vom Typ bigint. Jede Regelauslösung, die Benachrichtigungen generiert, erstellt einen oder mehrere Batches von Benachrichtigungen. Notification Services fügt die Batchnummer automatisch in die Benachrichtigungstabelle ein.
  • SubscriberId ist eine Spalte vom Typ nvarchar(255), die die ID des Abonnenten für die generierte Benachrichtigung enthält. Notification Services verwendet die Abonnenten-ID, um Übermittlungsinformation für die Benachrichtigung zu suchen. Die Abonnementregel, die Benachrichtigungen generiert, muss diesen Wert einfügen.
  • DeviceName ist eine Spalte vom Typ nvarchar(255), die den Namen eines Abonnentengeräts enthält, wie er in der SubscriberDevices-Tabelle in der Instanzdatenbank gespeichert ist. Notification Services verwendet den Gerätenamen zum Abrufen der Übermittlungsinformationen, und Notification Services kann den Gerätenamen für die benutzerdefinierte Formatierung einem Inhaltsformatierer bereitstellen. Die Abonnementregel, die Benachrichtigungen generiert, muss diesen Wert einfügen. Beachten Sie, dass das Paar aus SubscriberId und DeviceName mit einem Datensatz in der SubscriberDevices-Tabelle übereinstimmen muss.
  • SubscriberLocale ist eine Spalte vom Typ nvarchar(10), die einen Gebietsschemacode enthält. Bei diesem Gebietsschemacode muss es sich um einen der unterstützten Gebietsschemacodes handeln. Er muss von der Abonnementregel eingefügt werden. Notification Services übergibt diese Informationen an den Inhaltsformatierer, damit er eine gebietsschemaspezifische Formatierung ausführen kann. Eine Liste unterstützter Codes finden Sie unter Subscriber Locale Codes.

Die nachfolgenden Spalten in der Benachrichtigungstabelle werden durch die Benachrichtigungsfelder in der Benachrichtigungsklasse definiert. Für das Nachverfolgen der Benachrichtigungsübermittlung fügt Notification Services nach den benutzerdefinierten Feldern drei zusätzliche Felder hinzu:

  • DeliveryStatusCode ist eine Spalte vom Typ tinyint, die einen Code für den Übermittlungsstatus enthält. Diese Informationen sind nicht für die Verwendung in der Berichterstellung vorgesehen.
  • SentTime ist eine Spalte vom Typ datetime, die die Uhrzeit enthält, zu der das Übermittlungsprotokoll den Benachrichtigungsübermittlungsstatus meldete.
  • LinkNotificationId ist eine Spalte vom Typ bigint, die nur dann relevant ist, wenn die Digestübermittlung verwendet wird. Wenn die Benachrichtigung in einem Digest enthalten war und nicht die erste Benachrichtigung in diesem Digest war, enthält dieses Feld die ID der ersten Benachrichtigung. Die erste Benachrichtigung enthält die Status- und Zeitinformationen.

Diese Felder sind nicht für das Debuggen und die Berichterstellung vorgesehen. Verwenden Sie stattdessen die NS<NotificationClassName>NotificationDistribution (Sicht), die diese Informationen in einem besser lesbaren Format bereitstellt.

Benutzerdefinierte Benachrichtigungsfelder

Bei benutzerdefinierten Feldern handelt es sich um die Felder, die Daten speichern, die für Abonnenten von Interesse sind, oder die anderweitig zum Generieren der endgültigen Benachrichtigung verwendet werden.

Für das Definieren der benutzerdefinierten Felder für eine Benachrichtigungsklasse ist es erforderlich, dass Sie wissen, welche Daten Sie senden möchten, und die Felder müssen mit den Daten übereinstimmen, die von der Abonnementregel erstellt werden, die Benachrichtigungen generiert.

Für jedes benutzerdefinierte Feld müssen Sie den Feldnamen und Datentyp definieren. Wenn Sie Benachrichtigungen senden möchten, die Wettervorhersagen enthalten, können Sie die folgenden Benachrichtigungsfelder definieren:

  • Feldname: City; Feldtyp: nvarchar(35)
  • Feldname: State; Feldtyp: nvarchar(35)
  • Feldname: Forecast; Feldtyp: nvarchar(3500)

Die Datentypen für diese Felder müssen mit den Quelldatentypen kompatibel sein, die beim Generieren der Benachrichtigungen verwendet werden.

Wenn Sie die Digestübermittlung verwenden und alle Benachrichtigungen eines Abonnenten für den gleichen Wert von State gruppieren möchten, legen Sie die Digestgruppierung für dieses Feld auf true fest. Die neue Definition für das State-Feld lautet wie folgt:

  • Feldname: State; Feldtyp: nvarchar(35); Digestgruppierung: true

Weitere Informationen zur Digestübermittlung finden Sie unter Angeben von Digest- oder Multicastübermittlung.

So definieren Sie Felder für eine Benachrichtigungsklasse

Berechnete Felder

Berechnete Felder ermöglichen es Ihnen, Benachrichtigungsdaten unmittelbar vor der Übergabe des Inhalts an den Inhaltsformatierer zu berechnen.

Berechnete Felder verwenden Transact-SQL-Ausdrücke, um unmittelbar vor der Übergabe der Benachrichtigung an den Inhaltsformatierer einen Wert für ein Benachrichtigungsfeld zu generieren. Sie können jeden Transact-SQL-Ausdruck verwenden, der als Teil einer SELECT-Abfrage in der Anwendungsdatenbank ausgewertet werden kann. Dies schließt die Verwendung beliebiger Konstanten und das Ausführen von Funktionsaufrufen ein.

ms172546.note(de-de,SQL.90).gifHinweis:
In der Transact-SQL-Syntax müssen Zeichenfolgenkonstanten in Anführungszeichen eingeschlossen werden. Wenn Sie eine Zeichenfolge in einem berechneten Feld verwenden, müssen Sie sie daher in einzelne Apostrophen einschließen. Wenn die Zeichenfolge im Unicode-Format vorliegt, stellen Sie der Zeichenfolge außerdem ein N voran, z. B. N'myString'.

Wenn Sie der Benachrichtigungsklasse ein berechnetes Feld hinzufügen möchten, definieren Sie einen Feldnamen und den Transact-SQL-Ausdruck. Wenn Sie beispielsweise einen Preis in eine formatierte Zeichenfolge konvertieren möchten, können Sie Folgendes in der Definition des berechneten Feldes angeben:

  • Feldname: FormattedStockPrice;
  • Transact-SQL-Ausdruck: CONVERT(NVARCHAR(10), StockPrice, 1)

Wenn eine Benachrichtigung an den Inhaltsformatierer gesendet wird, nimmt dieses berechnete Feld den Wert im StockPrice-Feld an und konvertiert ihn in eine formatierte Zeichenfolge. Wenn z. B. das StockPrice-Feld vom Typ money ist und den Wert 1000.70 aufweist, enthält das FormattedStockPrice-Feld die folgende Zeichenfolge: 1,000.70.

Sie können außerdem angeben, dass ein berechnetes Feld verwendet werden soll, um zu bestimmen, welche Benachrichtigungen für die Digestübermittlung gruppiert werden. Zum Gruppieren von Benachrichtigungen mit dem gleichen berechneten Feldwert legen Sie die Digestgruppierungseigenschaft für das berechnete Feld auf true fest.

So definieren Sie berechnete Felder für eine Benachrichtigungsklasse

Siehe auch

Konzepte

Konfigurieren von Inhaltsformatierern
Angeben von Digest- oder Multicastübermittlung
Angeben einer Benachrichtigungsbatchgröße
Angeben des Benachrichtigungsablaufalters
Angeben von Digest- oder Multicastübermittlung

Andere Ressourcen

Definieren von Benachrichtigungsklassen
Konfigurieren von Übermittlungsprotokollen
Ausdrücke (Transact-SQL)
CREATE TABLE (Transact-SQL)
Definieren von Benachrichtigungsklassen
Definieren von Notification Services-Anwendungen

Hilfe und Informationen

Informationsquellen für SQL Server 2005