NSEventSubmitBatch<EventClassName> (Transact-SQL)
Erstellt einen neuen Ereignisbatch, ruft eine Ereignismenge von einer Abfrage ab, übermittelt diese Ereignisse, führt dann optional eine der Verarbeitung nachgelagerte Abfrage aus und schließt den Ereignisbatch dann. Durch die Verwendung einer Abfrage als Ereignisquelle können Sie, anders als bei der gespeicherten Prozedur NSEventWriteEventClassName, mehrere Ereignisse gleichzeitig übermitteln.
Syntax
[ schema_name . ] SEventSubmitBatchEventClassName
[ @ProviderName = ] 'event_provider_name',
[ @EventsQuery = ] 'selection_query',
[ @PostQuery = ] 'post_processing_query'
Argumente
[ @ProviderName = ] 'provider_name'
Der Name des Ereignisanbieters, der die Ereignisse übermittelt. provider_name ist ein Wert vom Datentyp nvarchar(255) und muss einem der Ereignisanbieter entsprechen, die in der Anwendungsdefinitionsdatei (ADF, Application Definition File) angegeben sind.
[ @EventsQuery = ] 'selection_query'
Der Text der Transact-SQL-Abfrage, die zum Auswählen der Datensätze verwendet wird, die als Ereignisse übermittelt werden sollen. Das Schema der Datensätze, die von der Abfrage generiert werden, muss dem Schema der Ereignistabelle entsprechen, an die die Datensätze übermittelt werden. selection_query ist ein Wert vom Datentyp nvarchar(4000).
[ @PostQuery = ] 'post_processing_query'
Der Text einer Transact-SQL-Abfrage, die für der Verarbeitung nachgelagerte Cleanups oder die Statusverwaltung, z. B. das Aktualisieren von Verlaufstabellen oder das Löschen temporärer Objekte, verwendet wird. post_processing_query ist ein Wert vom Datentyp nvarchar(4000).
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Resultsets
Spaltenname | Datentyp | Beschreibung |
---|---|---|
EventCount |
bigint |
Die Anzahl von Ereignissen, die im Ereignisbatch übermittelt werden. Diese Zahl wird mithilfe einer Abfrage aus der Ereignistabelle abgerufen. |
Hinweise
Microsoft SQL Server Notification Services erstellt die gespeicherte Prozedur NSEventSubmitBatchEventClassName 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 wird. Falls kein Schemaname bereitgestellt wurde, wird dbo als Standardschema verwendet.
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.
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 die gespeicherte Prozedur NSEventSubmitBatchStockEvents verwendet wird, um die Namen im Lager befindlicher Artikel und die zugehörigen Preise aus der Stocks-Tabelle der Market-Datenbank abzurufen. Anschließend werden diese Daten in die NSStockEventsEvents-Tabelle geschrieben. In der Abfrage ist eine leere, der Verarbeitung nachgelagerte Abfrage angegeben.
Von der Anwendung werden die standardmäßigen SchemaName-Einstellungen verwendet, wodurch alle Anwendungsobjekte im dbo-Schema platziert werden.
EXEC dbo.NSEventSubmitBatchStockEvents
@ProviderName = N'StockEP',
@EventsQuery = 'SELECT StockSymbol, StockPrice
FROM Market.dbo.Stocks',
@PostQuery = '';
Siehe auch
Verweis
Gespeicherte Prozeduren in Notification Services (Transact-SQL)
Andere Ressourcen
Notification Services-Leistungsberichte
SchemaName Element (ADF)