Freigeben über


Definieren von Ereignisverlaufsregeln

Ereignisverlaufsregeln verwalten die Daten in Ereignisverlaufstabellen. Jeder Ereignisverlauf besitzt einen Namen, eine Aktion und ein Aktionstimeout.

Name der Regel

Der Name der Ereignisverlaufsregel identifiziert die Regel in der Notification Services-Anwendung eindeutig. Der Regelname wird zum Benennen von Datenbankobjekten verwendet. Aus Gründen der Konsistenz sollte der Ereignisverlaufsname mit dem Namen der Ereignisverlaufstabelle übereinstimmen.

Aktion

Die Aktion enthält den Code, der Daten in den Verlaufstabellen verwaltet. So bleiben die Daten in einem verwendbaren Zustand für die Anwendung. Beispielsweise können die Anweisungen in der Aktion jedes Mal, wenn ein neuer Ereignisbatch verarbeitet wird, alle vorhandenen Daten in einer Ereignisverlaufstabelle löschen und anschließend die neuen Ereignisdaten einfügen.

Bei den Anweisungen in der Aktion kann es sich um eine oder mehrere Transact-SQL-Abfragen oder um eine EXECUTE-Anweisung von Transact-SQL handeln, die eine gespeicherte Prozedur ausführt.

Die Aktionsanweisungen werden jedes Mal, wenn der Generator einen Ereignisbatch verarbeitet, ausgeführt. Sie werden abgeschlossen, bevor der Generator Abonnementregeln ausführt, die Benachrichtigungen generieren. Daher wird der Ereignisverlauf aktualisiert, bevor er zum Generieren von Benachrichtigungen verwendet wird.

ms172596.note(de-de,SQL.90).gifHinweis:
Wenn Sie die Verlaufsdaten verwalten möchten, nachdem Benachrichtigungen generiert wurden, fügen Sie Abonnementereignisregeln Transact-SQL-Abfragen oder Aufrufe von gespeicherten Prozeduren hinzu. Weitere Informationen finden Sie unter Definieren von Ereignisregeln.

Die Transact-SQL-Anweisungen der Aktion wählen normalerweise Daten aus einer Ereignisklasse aus und fügen Daten in den Ereignisverlauf ein bzw. aktualisieren Daten im Ereignisverlauf. Das folgende Beispiel zeigt Beispielanweisungen von Transact-SQL für eine Aktion. Die Anweisungen wählen neue Daten aus der StockEvents-Ereignisklasse aus und fügen die Daten in den StockEventChron-Verlauf ein. Anschließend aktualisieren sie Aktienkurse für Aktien, die sich bereits im Verlauf befinden.

-- Insert New Stock Symbols with Prices
INSERT dbo.StockEventsChron (StockSymbol, StockPrice)
SELECT e.StockSymbol, e.StockPrice
    FROM dbo.StockEvents AS e
    WHERE e.StockSymbol
        NOT IN (SELECT StockSymbol FROM dbo.StockEventsChron);
-- Update Existing Stock Symbols with New Prices
UPDATE dbo.StockEventsChron
    SET StockPrice = e.StockPrice
    FROM dbo.StockEvents AS e 
    JOIN dbo.StockEventsChron AS c
        ON e.StockSymbol = c.StockSymbol
        WHERE e.StockPrice > c.StockPrice;
ms172596.note(de-de,SQL.90).gifHinweis:
Wenn Sie eine Anwendung in einer XML-Datei definieren, müssen Sie reservierte XML-Zeichen, wie z. B. '>', durch ihre Entitätsverweise ersetzen. Weitere Informationen finden Sie unter XML Reserved Characters.

Alle Anweisungen in einer Aktion sind Teil der gleichen Transaktion. Sie werden entweder alle abgeschlossen, oder es wird für alle ein Rollback ausgeführt.

Weitere Informationen zum Erstellen von Transact-SQL-Abfragen finden Sie unter Grundlegende Informationen zu Abfragen.

Aktionstimeout

Das Aktionstimeout gibt die Zeitspanne an, die für den Abschluss von Anweisungen in der Aktion zulässig ist. Wenn die Anweisungen nicht abgeschlossen werden, bevor das Timeout auftritt, führt das Benachrichtigungssystem ein Rollback der Transaktion aus, markiert die Ereignisverlaufsregel als einen Fehler erzeugend und schreibt einen Fehler in das Ereignisprotokoll.

ms172596.note(de-de,SQL.90).gifHinweis:
Wenn eine Ereignisverlaufsregel einen Fehler erzeugt, d. h., es ist ein Fehler aufgetreten, oder beim Verwalten des Ereignisverlaufs ist ein Timeout aufgetreten, dann erzeugen zugehörige Abonnementereignisregeln, die im gleichen Generatorquantum ausgelöst werden würden, ebenfalls einen Fehler. Geplante Regeln erzeugen keinen Fehler, da sie die jeweils aktuellen Daten verwenden.

So definieren Sie eine Ereignisverlaufsregel

Beispiele für Ereignisverlaufsregeln

Die folgenden Themen stellen Beispiele für Ereignisverlaufsregeln bereit.

Siehe auch

Verweis

EventChronicle
EventChronicleRule
EventFieldCollection

Konzepte

Definieren von Kernereignisklassen-Eigenschaften
Definieren von Indizes für eine Ereignisklasse
Definieren von Ereignisregeln

Andere Ressourcen

Definieren von Ereignisklassen
EventClass Element (ADF)
Definieren von Notification Services-Anwendungen
CREATE TABLE (Transact-SQL)
INSERT (Transact-SQL)
SELECT (Transact-SQL)
UPDATE (Transact-SQL)
DELETE (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005