Notificaciones de consulta en SQL Server (ADO.NET)
Actualización: November 2007
Las notificaciones de consulta se incorporaron en Microsoft SQL Server 2005 y el espacio de nombres System.Data.SqlClient en ADO.NET 2.0. Las notificaciones de consulta, que están basadas en la infraestructura Service Broker, permiten que se notifique a las aplicaciones cuando cambian los datos. Esta característica es especialmente útil en aplicaciones que proporcionan una caché de información desde una base de datos, por ejemplo, una aplicación web, y necesitan recibir notificación cuando cambian los datos de origen.
Existen tres maneras de implementar las notificaciones de consulta mediante ADO.NET:
La implementación de nivel inferior la proporciona la clase SqlNotificationRequest, que presenta funciones de servidor, lo que permite ejecutar un comando con una solicitud de notificación.
La implementación de nivel superior la proporciona la clase SqlDependency, que ofrece un alto nivel de abstracción de la funcionalidad de notificación entre la aplicación de origen y SQL Server, lo que permite utilizar una dependencia para detectar 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 de .NET Framework para servidor SQL Server.
Además, las aplicaciones web creadas mediante ASP.NET 2.0 o posterior pueden utilizar las clases auxiliares SqlCacheDependency.
Las notificaciones de consulta son útiles en aquellas aplicaciones que necesitan actualizar presentaciones o cachés como 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 procesarlas más adelante.
Puede definir notificaciones para las instrucciones SELECT y EXECUTE. Al utilizar 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 limitaciones de una instrucción SELECT. Si 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.
Para obtener más información acerca de las notificaciones de consulta y SQL Server Service Broker, vea los siguientes vínculos a temas de los Libros en pantalla de SQL Server.
Libros en pantalla de SQL Server 2005 |
Libros en pantalla de SQL Server 2008 |
---|---|
En esta sección
Habilitación de notificaciones de consulta (ADO.NET)
Describe cómo utilizar las notificaciones de consulta, junto con los requisitos para habilitarlas y usarlas.SqlDependency en una aplicación ASP.NET (ADO.NET)
Muestra cómo usar notificaciones de consulta desde una aplicación ASP.NET.Detectar cambios con SqlDependency (ADO.NET)
Muestra cómo detectar cuándo los resultados de las consultas serán diferentes de los recibidos originalmente.Ejecución de SqlCommand con una solicitud SqlNotification (ADO.NET)
Muestra cómo configurar un objeto SqlCommand para trabajar con una notificación de consulta.
Referencia
SqlNotificationRequest
Describe la clase SqlNotificationRequest, así como todos sus miembros.SqlDependency
Describe la clase SqlDependency, así como todos sus miembros.SqlCacheDependency
Describe la clase SqlCacheDependency, así como todos sus miembros.