Share via


NSEventFlushBatch<EventClassName> (Transact-SQL)

Schließt einen Ereignisbatch, der durch NSEventBeginBatchEventClassName geöffnet wurde. Durch diese gespeicherte Prozedur wird ein Commit für die Ereignisauflistungstransaktion ausgeführt und der Ereignisbatch dann als abgeschlossen markiert. Üblicherweise verwenden Sie diese gespeicherte Prozedur, wenn einzelne Ereignisse mithilfe von Transact-SQL übermittelt werden. Weitere Informationen hierzu finden Sie im Abschnitt mit den Hinweisen.

Syntax

[ schema_name . ] NSEventFlushBatchEventClassName
    [ @EventBatchId = ] event_batch_ID
    [, [@EventCount = ] number_of_events]

Argumente

[ @EventBatchId =] event_batch_ID

Die ID, des Ereignisbatches, für den ein Commit ausgeführt werden soll. event_batch_ID ist ein Wert vom Datentyp bigint und weist keinen Standardwert auf.

[ @EventCount =] number_of_events

Die Anzahl von Ereignissen, die für den Ereignisbatch übermittelt werden. Die gespeicherte Prozedur erhält den Standardwert durch das Abfragen der Ereignistabelle.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Spaltenname Datentyp Beschreibung

EventCount

bigint

Anzahl von Ereignissen, die im Ereignisbatch übermittelt werden. Diese Anzahl wird entweder im @EventCount-Argument angegeben oder aus der Ereignistabelle abgefragt.

Hinweise

Notification Services erstellt die gespeicherte Prozedur NSEventFlushBatchEventClassName in der Anwendungsdatenbank, wenn Sie die Instanz erstellen. Wenn Sie die Anwendung aktualisieren, wird die gespeicherte Prozedur von Notification Services neu kompiliert.

Diese gespeicherte Prozedur befindet sich im Schema der Anwendung, das durch das SchemaName-Element der Anwendungsdefinitionsdatei (ADF, Application Definition File) angegeben ist. Wenn kein Schemaname angegeben wird, ist dbo das Standardschema.

Zum Übermitteln der einzelnen Ereignisse an eine Anwendung mithilfe von Transact-SQL verwenden Sie NSEventBeginBatchEventClassName, um den Batch zu öffnen, NSEventWriteEventClassName, um einzelne Ereignisse zu schreiben, und NSEventFlushBatchEventClassName, um den Ereignisbatch zu schließen.

Wenn Sie eine Abfrage verwenden, um einen Satz von Ereignissen zu erhalten, und diese anschließend an eine Anwendung übermitteln möchten, verwenden Sie NSEventSubmitBatchEventClassName.

Berechtigungen

Standardmäßig verfügen Mitglieder der Datenbankrollen NSEventProvider und NSRunService, der festen Datenbankrolle db_owner und der festen Serverrolle sysadmin über Berechtigungen zum Ausführen der gespeicherten Prozedur.

Beispiele

Im folgenden Beispiel wird gezeigt, wie ein Ereignisbatch geöffnet, ein Ereignis geschrieben und der Ereignisbatch anschließend geschlossen wird. StockEP ist der Ereignisanbieter für den Ereignisbatch; die Ereignisbatch-ID wird im @BatchID-Ausgabeparameter zurückgegeben.

Die Anwendung verwendet die standardmäßigen SchemaName-Einstellungen, wodurch alle Anwendungsobjekte dem dbo-Schema zugeordnet werden.

DECLARE @BatchID bigint;
EXEC dbo.NSEventBeginBatchStockEvents N'StockEP', @BatchID OUTPUT;
EXEC dbo.NSEventWriteStockEvents
   @EventBatchId=@BatchID,
   @StockSymbol=N'AWKS',
   @StockPrice=68.14;
EXEC dbo.NSEventFlushBatchStockEvents @BatchID;
SELECT @BatchID 'Event Batch';

Bei diesem Beispiel wird vorausgesetzt, dass Sie Microsoft SQL Server Management Studio verwenden, da die Ereignisbatch-ID in der SELECT-Anweisung zurückgegeben wird, sodass Sie sehen können, welcher Ereignisbatch erstellt wurde.

Siehe auch

Verweis

Gespeicherte Prozeduren in Notification Services (Transact-SQL)

Andere Ressourcen

Notification Services-Leistungsberichte
SchemaName Element (ADF)

Hilfe und Informationen

Informationsquellen für SQL Server 2005