Wie erkennen Abfragemeldungen Änderungen im Abfrageergebnis?

7

Ich arbeite mit einer Legacy-Datenbank, die Abfragebenachrichtigungen für eine Tabelle namens ColorList implementiert hat .

Beim Ausführen einer serverseitigen Ablaufverfolgung für ein nicht verwandtes Problem ist mir die Abfrage aufgefallen

SELECT color FROM ColorList

wurde alle 10 Millisekunden ausgeführt .

Funktioniert die Abfragebenachrichtigung so? Speichert SQL Server die Ergebnisse der ursprünglichen Abfrage und führt die Abfrage dann endlos aus, bis eine Änderung festgestellt wird?

8kb
quelle
Gewöhnen Sie sich nicht an die Verwendung von Benachrichtigungsdiensten. Es ist nur in SQL Server 2005 verfügbar.
Mrdenny

Antworten:

10

Lesen Sie die Mysterious Notification, um eine Erklärung zu erhalten, wie es funktioniert. Wenn die Abfrage alle 10 ms ausgeführt wird, bedeutet dies, dass Ihre Anwendung sie alle 10 ms ausführt . Mein 8 Ball sagt mir Ihren Code nicht die Meldung nicht überprüft EventArgs und erneut einreichen blind die Abfrage trotz der Info Wesen des Wertes Invalid, was auf eine Abfrage als nicht mitgeteilt. Was zu erwarten ist, da Ihre Abfrage nicht den Einschränkungen für die Abfragebenachrichtigung entspricht :

Die projizierten Spalten in der SELECT-Anweisung müssen explizit angegeben werden, und Tabellennamen müssen mit zweiteiligen Namen qualifiziert werden .

Remus Rusanu
quelle