Notificaciones de consulta en SQL Server

Descargar ADO.NET

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.

Hay tres maneras de implementar notificaciones de consulta mediante ADO.NET:

  • La implementación de bajo nivel se proporciona mediante la clase SqlNotificationRequest que expone la funcionalidad del servidor, lo que permite ejecutar un comando con una solicitud de notificación.

  • La implementación de alto nivel se proporciona mediante la clase SqlDependency, que es una clase que proporciona una abstracción de alto nivel de la funcionalidad de notificación entre la aplicación de origen y SQL Server, lo que permite utilizar una dependencia para detectar los cambios en el servidor. En la mayoría de los casos, esta es la manera más sencilla y eficaz de aprovechar la capacidad de notificaciones de SQL Server por parte de aplicaciones cliente administradas que usan el proveedor de datos Microsoft SqlClient para SQL Server.

  • Además, las aplicaciones web creadas mediante ASP.NET 2.0 o posterior pueden usar las clases auxiliares SqlCacheDependency.

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

Puede configurar notificaciones para las instrucciones SELECT y EXECUTE. Cuando se usa una instrucción EXECUTE, SQL Server registra una notificación para el comando ejecutado en lugar de la propia instrucción EXECUTE. El comando debe cumplir los requisitos y las limitaciones de una instrucción SELECT. 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 donde sean necesarias notificaciones de subsegundo confiables cuando los datos cambien, revise las secciones Planear una estrategia eficaz de notificaciones de consulta y Alternativas a las notificaciones de consulta del tema Planear notificaciones de los Libros en pantalla de SQL Server. Para obtener más información de las notificaciones de consulta y SQL Server Service Broker, vea los siguientes vínculos a los temas de Libros en pantalla de SQL Server.

Documentación de SQL Server

En esta sección

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

SqlDependency en una aplicación ASP.NET
Muestra cómo usar notificaciones de consulta desde una aplicación de ASP.NET.

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 SqlNotificationRequest
Muestra cómo configurar un objeto SqlCommand para que funcione con una notificación de consulta.

Referencia

SqlNotificationRequest
Describe la clase SqlNotificationRequest y todos sus miembros.

SqlDependency
Describe la clase SqlDependency y todos sus miembros.

SqlCacheDependency
Describe la clase SqlCacheDependency y todos sus miembros.

Pasos siguientes