Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Basées sur l’infrastructure de Service Broker, les notifications de requêtes permettent aux applications d’être notifiées en cas de modification des données. Cette fonctionnalité est particulièrement utile pour les applications qui fournissent un cache d'informations à partir d'une base de données, par exemple une application Web, et qui doivent être notifiées en cas de modification des données sources.
Microsoft.Data.SqlClient fournit deux classes pour les notifications de requêtes :
Utilisez SqlNotificationRequest pour exécuter une commande avec une demande de notification et traiter vous-même les messages Service Broker.
Utilisez SqlDependency pour détecter les modifications via l’événement
OnChange. Microsoft. Data.SqlClient gère l’écouteur et expose les informations de notification dans les arguments d’événement.
Important
N’utilisez pas System.Data.SqlClient pour le nouveau développement. Utilisez Microsoft.Data.SqlClient à la place. La classe ASP.NET Framework SqlCacheDependency nécessite System.Data.SqlClient et ne s'intègre pas à Microsoft.Data.SqlClient. Pour les nouvelles applications Microsoft.Data.SqlClient, abonnez-vous à SqlDependency.OnChange et invalidez les entrées via l'API de cache de votre application.
Les notifications de requête sont utilisées pour les applications qui doivent actualiser des affichages ou des caches en réponse aux modifications des données sous-jacentes. SQL Server permet aux applications .NET d’envoyer une commande et de demander une notification si la même commande produirait des jeux de résultats différents de ceux initialement récupérés. Les notifications générées au niveau du serveur sont envoyées par l’intermédiaire de files d’attente pour un traitement ultérieur.
Vous pouvez configurer des notifications pour les relevés SELECT et EXECUTE. Lors de l’utilisation d’une EXECUTE instruction, SQL Server inscrit une notification pour la commande exécutée plutôt que l’instruction EXECUTE elle-même. La commande doit répondre aux exigences et limitations d’une instruction SELECT. Quand une commande qui enregistre une notification contient plusieurs instructions, le moteur de base de données crée une notification pour chaque instruction du traitement.
Si vous développez une application pour laquelle vous avez besoin de notifications fiables à la fraction de seconde près lorsque des données sont modifiées, consultez les sections Planification d’une stratégie efficace de notifications de requête et Alternatives aux notifications de requête de l’article Planification des notifications. Pour plus d’informations sur les notifications de requête et SQL Server Service Broker, consultez les liens suivants vers des articles de la documentation de SQL Server.
Documentation SQL Server
Dans cette section
Activer les notifications de requêtes Explique comment utiliser les notifications de requêtes, y compris les exigences pour les activer et les utiliser.
Détecter les changements avec SqlDependency Montre comment détecter quand les résultats d’une requête diffèrent de ceux initialement reçus.
Exécution de SqlCommand avec un objet SqlNotificationRequest Montre comment configurer l’objet SqlCommand pour une notification de requête.
Référence
SqlNotificationRequest Décrit la classe SqlNotificationRequest et tous ses membres.
SqlDependency Décrit la classe SqlDependency et tous ses membres.
SqlCacheDependencyDécrit la classe de dépendance de cache ASP.NET Framework pour System.Data.SqlClient. Il n’encapsule pas les dépendances Microsoft.Data.SqlClient.