Partager via


Collecte et le filtrage des données pour le fournisseur d'événements SQL Server

Lorsque vous définissez le fournisseur d'événements Microsoft SQL Server, vous devez définir une requête qui recueille les données d'événements. Vous pouvez éventuellement définir une requête qui effectue le post-traitement sur les tables à partir desquelles vous avez recueilli les données.

Collecte des données

La requête Transact-SQL que vous définissez pour la collecte des données peut être n'importe quelle requête Transact-SQL qui retourne les données qui correspondent exactement aux champs de la classe d'événement de destination. Par exemple, si vous avez défini une classe d'événements avec deux champs, StockSymbol et StockPrice, la seul condition requise pour la requête qui collecte les événements et qu'elle retourne uniquement deux colonnes de données qui correspondent au nom et au type de données des champs StockSymbol et StockPrice. Voici un exemple d'une requête de ce type :

SELECT StockSymbol, StockPrice
FROM StockDB.dbo.StockTable;

Vous pouvez exécuter une procédure stockée pour la requête de recueil des événements.

Filtrage de données

Si votre instruction SELECT peut éventuellement renvoyer une grande quantité de données, et si certaines de ces données ne sont pas des données d'événement valides, vous pouvez filtrer la requête. Vous pouvez par exemple écrire une requête qui renvoie les données boursières contenant uniquement les actions pour lesquelles les abonnés ont créé des abonnements :

SELECT StockSymbol, StockPrice
FROM StockDB.dbo.StockTable
WHERE StockSymbol IN 
(SELECT DISTINCT StockSymbol FROM dbo.StockSubscriptions);

Cette requête renvoie uniquement les données boursières susceptibles de générer des notifications.

Post-traitement

Le fournisseur SQL Server d'événements prend en charge une requête de post-traitement afin que vous puissiez nettoyer ou modifier des données après la génération des événements. Vous pouvez par exemple avoir une colonne qui possède la valeur 0 avant de générer des événements, mais vous souhaitez qu'elle ait la valeur 1 après la génération des événements. Pour mettre à jour la table, vous pouvez écrire une requête semblable à celle-ci :

UPDATE StockDB.dbo.StockTable
SET EventUsage = 1
WHERE EventUsage = 0;

La requête de post-traitement s'exécute dans la même transaction que la requête de recueil d'événements.

Vous pouvez exécuter des procédures stockées pour la requête de post-traitement.

Voir aussi

Concepts

Définition d'un fournisseur d'événements SQL Server

Autres ressources

Définition des fournisseurs d'événements
Fournisseurs d'événements standard
SELECT (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005