Raccolta e filtraggio dei dati per il provider di eventi di SQL Server
Quando si definisce il provider di eventi di Microsoft SQL Server, è necessario definire una query per raccogliere i dati degli eventi. Se lo si desidera, è possibile definire una query che esegue una post-elaborazione delle tabelle da cui vengono raccolti i dati.
Raccolta dei dati
La query Transact-SQL definita per la raccolta dei dati può essere una qualsiasi query Transact-SQL che restituisce dati che corrispondono esattamente ai campi della classe di evento di destinazione. Se, ad esempio, è stata definita una classe di evento con due campi, StockSymbol e StockPrice, l'unico requisito per la query di raccolta degli eventi è che restituisca solo due colonne di dati con nome e tipo di dati corrispondenti a quelli dei campi StockSymbol e StockPrice. Di seguito è riportato un esempio di tale query:
SELECT StockSymbol, StockPrice
FROM StockDB.dbo.StockTable;
È possibile eseguire una stored procedure per la query di raccolta degli eventi.
Filtraggio dei dati
Se l'istruzione SELECT può restituire volumi elevati di dati e alcuni di tali dati non sono dati di eventi validi, è possibile filtrare la query. È possibile, ad esempio, scrivere una query che restituisca solo i dati relativi alle azioni di borsa per le quali i sottoscrittori hanno creato sottoscrizioni:
SELECT StockSymbol, StockPrice
FROM StockDB.dbo.StockTable
WHERE StockSymbol IN
(SELECT DISTINCT StockSymbol FROM dbo.StockSubscriptions);
Questa query restituisce solo i dati delle azioni che potrebbero generare notifiche.
Post-elaborazione
Il provider di eventi di SQL Server supporta una query di post-elaborazione che consente di eliminare o modificare i dati dopo la generazione di eventi. Ad esempio, è possibile che una colonna contenga il valore 0 prima che gli eventi vengano generati, ma che sia necessario ottenere il valore 1 dopo la generazione degli eventi. Per aggiornare la tabella, è possibile scrivere una query di questo tipo:
UPDATE StockDB.dbo.StockTable
SET EventUsage = 1
WHERE EventUsage = 0;
La query di post-elaborazione viene eseguita nella stessa transazione di quella di raccolta degli eventi.
È possibile eseguire una stored procedure per la query di post-elaborazione.
Vedere anche
Concetti
Definizione di un provider di eventi SQL Server
Altre risorse
Definizione di provider di eventi
Provider di eventi standard
SELECT (Transact-SQL)