Dela via


Frågemeddelanden i SQL Server

Med hjälp av Service Broker-infrastrukturen tillåter frågemeddelanden att program meddelas när data har ändrats. Den här funktionen är särskilt användbar för program som tillhandahåller en cache med information från en databas, till exempel ett webbprogram, och som måste meddelas när källdata ändras.

Det finns tre sätt att implementera frågemeddelanden med hjälp av ADO.NET:

  1. Implementeringen på låg nivå tillhandahålls av klassen SqlNotificationRequest som exponerar funktioner på serversidan, så att du kan köra ett kommando med en meddelandebegäran.

  2. Den övergripande implementeringen tillhandahålls av SqlDependency klassen, som är en klass som ger en abstraktion av meddelandefunktioner på hög nivå mellan källprogrammet och SQL Server, så att du kan använda ett beroende för att identifiera ändringar på servern. I de flesta fall är detta det enklaste och mest effektiva sättet att utnyttja funktionen SQL Server-meddelanden av hanterade klientprogram med hjälp av .NET Framework Data Provider för SQL Server.

  3. Dessutom kan webbprogram som skapats med hjälp av ASP.NET 2.0 eller senare använda SqlCacheDependency hjälpklasserna.

Frågemeddelanden används för program som behöver uppdatera skärmar eller cacheminnen som svar på ändringar i underliggande data. Med Microsoft SQL Server kan .NET Framework-program skicka ett kommando till SQL Server och begära meddelande om att köra samma kommando skulle ge resultatuppsättningar som skiljer sig från dem som ursprungligen hämtades. Meddelanden som genereras på servern skickas via köer som ska bearbetas senare.

Du kan konfigurera meddelanden för SELECT- och EXECUTE-instruktioner. När du använder en EXECUTE-instruktion registrerar SQL Server ett meddelande för kommandot som körs i stället för själva EXECUTE-instruktionen. Kommandot måste uppfylla kraven och begränsningarna för en SELECT-instruktion. När ett kommando som registrerar ett meddelande innehåller mer än en instruktion skapar databasmotorn ett meddelande för varje -instruktion i batchen.

Om du utvecklar ett program där du behöver tillförlitliga meddelanden under sekunden när data ändras läser du avsnitten Planera en strategi för effektiva frågemeddelanden och alternativ till frågemeddelanden i artikeln Planera för meddelanden . Mer information om frågemeddelanden och SQL Server Service Broker finns i följande länkar till artiklar i SQL Server-dokumentationen.

Dokumentation om SQL Server

I det här avsnittet

När du aktiverar frågemeddelanden beskrivs hur du använder frågemeddelanden, inklusive kraven för att aktivera och använda dem.

Identifiera ändringar med SqlDependency Visar hur du identifierar när frågeresultaten skiljer sig från de som ursprungligen togs emot.

SqlCommand-körning med en SqlNotificationRequest Visar hur du konfigurerar ett SqlCommand objekt så att det fungerar med ett frågemeddelande.

Referens

SqlNotificationRequest Beskriver SqlNotificationRequest klassen och alla dess medlemmar.

SqlDependency Beskriver SqlDependency klassen och alla dess medlemmar.

SqlCacheDependency Beskriver SqlCacheDependency klassen och alla dess medlemmar.

Se även