Notificaciones de consulta en SQL ServerQuery Notifications in SQL Server

Las notificaciones de consulta, que están basadas en la infraestructura Service Broker, permiten que se notifique a las aplicaciones cuando cambian los datos.Built upon the Service Broker infrastructure, query notifications allow applications to be notified when data has changed. 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.This feature is particularly useful for applications that provide a cache of information from a database, such as a Web application, and need to be notified when the source data is changed.

Existen tres maneras de implementar las notificaciones de consulta mediante ADO.NET:There are three ways you can implement query notifications using ADO.NET:

  1. 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.The low-level implementation is provided by the SqlNotificationRequest class that exposes server-side functionality, enabling you to execute a command with a notification request.

  2. 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.The high-level implementation is provided by the SqlDependency class, which is a class that provides a high-level abstraction of notification functionality between the source application and SQL Server, enabling you to use a dependency to detect changes in the server. 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.In most cases, this is the simplest and most effective way to leverage SQL Server notifications capability by managed client applications using the .NET Framework Data Provider for SQL Server.

  3. Además, las aplicaciones web compiladas mediante ASP.NET 2.0 o posterior pueden utilizar las clases del asistente SqlCacheDependency.In addition, Web applications built using ASP.NET 2.0 or later can use the SqlCacheDependency helper classes.

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.Query notifications are used for applications that need to refresh displays or caches in response to changes in underlying data. 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.Microsoft SQL Server allows .NET Framework applications to send a command to SQL Server and request notification if executing the same command would produce result sets different from those initially retrieved. Las notificaciones generadas en el servidor se envían a través de colas para procesarlas más adelante.Notifications generated at the server are sent through queues to be processed later.

Puede definir notificaciones para las instrucciones SELECT y EXECUTE.You can set up notifications for SELECT and EXECUTE statements. Al utilizar una instrucción EXECUTE, SQL Server registra una notificación para el comando ejecutado en lugar de la propia instrucción EXECUTE.When using an EXECUTE statement, SQL Server registers a notification for the command executed rather than the EXECUTE statement itself. El comando debe cumplir los requisitos y limitaciones de una instrucción SELECT.The command must meet the requirements and limitations for a SELECT statement. 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.When a command that registers a notification contains more than one statement, the Database Engine creates a notification for each statement in the batch.

Si está desarrollando una aplicación donde necesita notificaciones de subsegundo confiables cuando los datos cambian, revise las secciones planear una estrategia eficaz de notificaciones de consulta y alternativas a las notificaciones de consulta en la planeación de Tema de notificaciones en libros en pantalla de SQL Server.If you are developing an application where you need reliable sub-second notifications when data changes, review the sections Planning an Efficient Query Notifications Strategy and Alternatives to Query Notifications in the Planning for Notifications topic in SQL Server Books Online. 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.For more information about Query Notifications and SQL Server Service Broker, see the following links to topics in SQL Server Books Online.

SQL Server documentaciónSQL Server documentation

En esta secciónIn This Section

Habilitación de notificaciones de consultaEnabling Query Notifications
Describe cómo utilizar las notificaciones de consulta, junto con los requisitos para habilitarlas y usarlas.Discusses how to use query notifications, including the requirements for enabling and using them.

SqlDependency en una aplicación ASP.NETSqlDependency in an ASP.NET Application
Muestra cómo usar notificaciones de consulta desde una aplicación ASP.NET.Demonstrates how to use query notifications from an ASP.NET application.

Detección de cambios con SqlDependencyDetecting Changes with SqlDependency
Muestra cómo detectar cuándo los resultados de las consultas serán diferentes de los recibidos originalmente.Demonstrates how to detect when query results will be different from those originally received.

Ejecución de SqlCommand con SqlNotificationRequestSqlCommand Execution with a SqlNotificationRequest
Muestra cómo configurar un objeto SqlCommand para trabajar con una notificación de consulta.Demonstrates configuring a SqlCommand object to work with a query notification.

ReferenciaReference

SqlNotificationRequest
Describe la clase SqlNotificationRequest, así como todos sus miembros.Describes the SqlNotificationRequest class and all of its members.

SqlDependency
Describe la clase SqlDependency, así como todos sus miembros.Describes the SqlDependency class and all of its members.

SqlCacheDependency
Describe la clase SqlCacheDependency, así como todos sus miembros.Describes the SqlCacheDependency class and all of its members.

Vea tambiénSee also