Notificaciones de consulta en SQL Server

Las notificaciones de consulta, creadas a partir de la infraestructura de Service Broker, permiten notificar a las aplicaciones si los datos han cambiado. Esta característica resulta especialmente útil para las aplicaciones que proporcionan una caché de información de una base de datos, como una aplicación web, y necesitan recibir notificaciones si se modifican los datos de origen.

Microsoft. Data.SqlClient proporciona dos clases para las notificaciones de consulta:

  • Utilice SqlNotificationRequest para ejecutar un comando con una solicitud de notificación y procesar los mensajes de Service Broker usted mismo.

  • Usa SqlDependency para detectar los cambios a través del evento OnChange. Microsoft.Data.SqlClient administra el oyente y expone la información de notificación en los argumentos del evento.

Importante

No use System.Data.SqlClient para desarrollos nuevos. Use Microsoft.Data.SqlClient en su lugar. La clase ASP.NET Framework SqlCacheDependency requiere System.Data.SqlClient y no se integra con Microsoft.Data.SqlClient. Para las nuevas aplicaciones Microsoft.Data.SqlClient, suscríbase a SqlDependency.OnChange y invalide las entradas mediante la API de caché de su aplicación.

Las notificaciones de consulta se utilizan en aplicaciones que necesitan actualizar las visualizaciones o las cachés en respuesta a los cambios en los datos subyacentes. SQL Server permite que las aplicaciones de .NET envíen un comando y soliciten una notificación si el mismo comando generaría conjuntos de resultados diferentes de los recuperados inicialmente. Las notificaciones generadas en el servidor se envían a través de colas para procesarse más adelante.

Puedes configurar notificaciones para las instrucciones SELECT y EXECUTE. Al usar una EXECUTE instrucción , SQL Server registra una notificación para el comando ejecutado en lugar de la EXECUTE propia instrucción. El comando debe cumplir los requisitos y limitaciones de una SELECT instrucción . Cuando un comando que registra una notificación contiene más de una instrucción, el motor de base de datos crea una notificación para cada instrucción del lote.

Si está desarrollando una aplicación que necesite las notificaciones de subsegundo confiables cuando cambian los datos, revise las secciones planear una estrategia eficaz de notificaciones de consulta y alternativas a las notificaciones de consulta en el artículo planear notificaciones. Para obtener más información acerca de las notificaciones de consulta y SQL Server Service Broker, vea los siguientes vínculos a artículos de la documentación de SQL Server.

Documentación de SQL Server

En esta sección

Habilitación de notificaciones de consulta Describe cómo usar las notificaciones de consulta, incluidos los requisitos para habilitarlas y usarlas.

Detección de cambios con SqlDependency Muestra cómo detectar cuándo los resultados de la consulta serán distintos de los recibidos originalmente.

Ejecución de SqlCommand con un SqlNotificationRequest Muestra cómo configurar el objeto SqlCommand para recibir notificaciones de consultas.

Referencia

SqlNotificationRequest Describe la clase SqlNotificationRequest y todos sus miembros.

SqlDependency Describe la clase SqlDependency y todos sus miembros.

SqlCacheDependencyDescribe la clase de dependencia de caché de ASP.NET Framework para System.Data.SqlClient. No encapsula las dependencias de Microsoft.Data.SqlClient.

Consulte también