Querymeldingen in SQL Server

Op basis van de Service Broker-infrastructuur kunnen querymeldingen toepassingen op de hoogte stellen wanneer gegevens zijn gewijzigd. Deze functie is met name handig voor toepassingen die een cache met informatie uit een database bieden, zoals een webtoepassing, en moeten worden gewaarschuwd wanneer de brongegevens worden gewijzigd.

Microsoft. Data.SqlClient biedt twee klassen voor querymeldingen:

  • Gebruik SqlNotificationRequest om een opdracht uit te voeren met een meldingsaanvraag en de Service Broker-berichten zelf te verwerken.

  • Gebruik SqlDependency dit om wijzigingen via de OnChange gebeurtenis te detecteren. Microsoft.Data.SqlClient beheert de listener en stelt meldingsinformatie beschikbaar in de gebeurtenisargumenten.

Important

Gebruik System.Data.SqlClient niet voor nieuwe ontwikkeling. Gebruik Microsoft.Data.SqlClient in plaats daarvan. De ASP.NET Framework-klasse SqlCacheDependency vereist System.Data.SqlClient en integreert niet met Microsoft.Data.SqlClient. Voor nieuwe Microsoft.Data.SqlClient-toepassingen, abonneer u op SqlDependency.OnChange en vermeldingen ongeldig maken via de cache-API van uw toepassing.

Querymeldingen worden gebruikt voor toepassingen die weergaven of caches moeten vernieuwen als reactie op wijzigingen in onderliggende gegevens. SQL Server stelt .NET-toepassingen in staat een opdracht te verzenden en een melding te ontvangen als dezelfde opdracht resultatensets produceert die anders zijn dan de resultatensets die in eerste instantie zijn opgehaald. Meldingen die op de server worden gegenereerd, worden verzonden via wachtrijen die later moeten worden verwerkt.

U kunt meldingen voor SELECT en EXECUTE overzichten instellen. Wanneer u een EXECUTE instructie gebruikt, registreert SQL Server een melding voor de opdracht die wordt uitgevoerd in plaats van de EXECUTE instructie zelf. Het commando moet voldoen aan de vereisten en beperkingen voor een SELECT instructie. Wanneer een opdracht die een melding registreert meer dan één instructie bevat, maakt de database-engine een melding voor elke instructie in de batch.

Als u een toepassing ontwikkelt waarvoor u betrouwbare sub-seconde meldingen nodig hebt wanneer gegevens worden gewijzigd, raadpleegt u de secties Planning an Efficient Query Notifications Strategy and Alternatives to Query Notifications in the Planning for Notifications article. Zie de volgende koppelingen naar artikelen in de SQL Server-documentatie voor meer informatie over querymeldingen en SQL Server Service Broker.

Documentatie over SQL Server

In dit gedeelte

Bij het inschakelen van querymeldingen wordt beschreven hoe u querymeldingen gebruikt, inclusief de vereisten voor het inschakelen en gebruiken ervan.

Het detecteren van wijzigingen met SqlDependency laat zien hoe u kunt detecteren wanneer queryresultaten afwijken van de resultaten die oorspronkelijk zijn ontvangen.

SqlCommand-uitvoering met een SqlNotificationRequest Demonstreert hoe u het SqlCommand object configureert voor een querymelding.

Verwijzing

SqlNotificationRequest Beschrijft de SqlNotificationRequest klas en alle leden.

SqlDependency Beschrijft de SqlDependency klas en alle leden.

SqlCacheDependencyBeschrijft de ASP.NET Framework-cacheafhankelijkheidsklasse voor System.Data.SqlClient. Het verpakt geen Microsoft.Data.SqlClient-afhankelijkheden.

Zie ook