Compartir a través de


Recopilar y filtrar datos del proveedor de eventos de SQL Server

Al definir el proveedor de eventos de Microsoft SQL Server, es necesario definir una consulta que recopile los datos de eventos. De forma opcional, es posible definir una consulta que realice un procesamiento posterior en las tablas cuyos datos se recopilan.

Recopilar datos

La consulta Transact-SQL que se define para recopilar datos puede ser cualquier consulta Transact-SQL que devuelva datos que coincidan exactamente con los campos de la clase de evento de destino. Por ejemplo, si se define una clase de evento con dos campos, StockSymbol y StockPrice, el único requisito de esa consulta que recopila eventos es que devuelva sólo dos columnas de datos que coincidan con el nombre y el tipo de datos de los campos StockSymbol y StockPrice. A continuación se muestra un ejemplo de una consulta de este tipo:

SELECT StockSymbol, StockPrice
FROM StockDB.dbo.StockTable;

Puede ejecutar un procedimiento almacenado para la consulta de recopilación de eventos.

Filtrar datos

Si la instrucción SELECT tiene potencial para devolver un gran volumen de datos y algunos de ellos no son datos de eventos válidos, puede filtrar la consulta. Por ejemplo, puede escribir una consulta que devuelva datos bursátiles que sólo contengan aquellas acciones para las que han creado suscripciones los suscriptores:

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

Esta consulta devuelve sólo los datos bursátiles que pueden generar notificaciones.

Procesamiento posterior

El proveedor de eventos de SQL Server admite una consulta de procesamiento posterior para limpiar o modificar los datos después de generar eventos. Por ejemplo, podría tener una columna con un valor de 0 antes de generar eventos, pero desea tener un valor de 1 después de generar eventos. Para actualizar la tabla, podría escribir una consulta como la siguiente:

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

La consulta de procesamiento posterior se ejecuta en la misma transacción que la consulta de recopilación de eventos.

Puede ejecutar un procedimiento almacenado para la consulta de procesamiento posterior.

Vea también

Conceptos

Definir un proveedor de eventos de SQL Server

Otros recursos

Definir proveedores de eventos
Proveedores de eventos estándar
SELECT (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005