Delen via


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.

Er zijn drie manieren waarop u querymeldingen kunt implementeren met behulp van ADO.NET:

  1. De implementatie op laag niveau wordt geleverd door de SqlNotificationRequest klasse die functionaliteit aan de serverzijde beschikbaar maakt, zodat u een opdracht met een meldingsaanvraag kunt uitvoeren.

  2. De implementatie op hoog niveau wordt geleverd door de SqlDependency klasse, een klasse die een abstractie op hoog niveau biedt van de meldingsfunctionaliteit tussen de brontoepassing en SQL Server, zodat u een afhankelijkheid kunt gebruiken om wijzigingen op de server te detecteren. In de meeste gevallen is dit de eenvoudigste en meest effectieve manier om gebruik te maken van sql Server-meldingen door beheerde clienttoepassingen met behulp van de .NET Framework-gegevensprovider voor SQL Server.

  3. Daarnaast kunnen webtoepassingen die zijn gebouwd met ASP.NET 2.0 of hoger, de SqlCacheDependency helperklassen gebruiken.

Querymeldingen worden gebruikt voor toepassingen die weergaven of caches moeten vernieuwen als reactie op wijzigingen in onderliggende gegevens. Met Microsoft SQL Server kunnen .NET Framework-toepassingen een opdracht verzenden naar SQL Server en een melding aanvragen als het uitvoeren van dezelfde opdracht resultatensets produceert die anders zijn dan die 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 instellen voor SELECT- en EXECUTE-instructies. Wanneer u een EXECUTE-instructie gebruikt, registreert SQL Server een melding voor de opdracht die wordt uitgevoerd in plaats van de EXECUTE-instructie zelf. De opdracht 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

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

SqlDependency in een ASP.NET-toepassing
Demonstreert hoe u querymeldingen van een ASP.NET-toepassing gebruikt.

Wijzigingen detecteren met SqlDependency
Demonstreert hoe u detecteert wanneer queryresultaten afwijken van de resultaten die oorspronkelijk zijn ontvangen.

SqlCommand-uitvoering met een SqlNotificationRequest
Demonstreert het configureren van een SqlCommand object voor gebruik met een querymelding.

Verwijzing

SqlNotificationRequest
Beschrijft de SqlNotificationRequest klas en alle leden.

SqlDependency
Beschrijft de SqlDependency klas en alle leden.

SqlCacheDependency
Beschrijft de SqlCacheDependency klas en alle leden.

Zie ook