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.

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

  1. 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.

  2. 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, ésta es la manera más sencilla y eficaz de aprovechar la funcionalidad de notificaciones de SQL Server 2005 por parte de aplicaciones cliente administradas que utilizan el proveedor de datos .NET Framework para SQL Server.

  3. 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 2005 permite que las aplicaciones .NET Framework envíen un comando a SQL Server y soliciten una notificación si la ejecución del mismo comando produjera 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 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.

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.

Consulte también