Ich habe ein Dienstprogramm, das:
- holt Sql-Befehle aus einer flachen Textdatei
- führt sie sequentiell gegen SQL Server auf demselben Rechner aus
- und meldet einen Fehler, wenn sich ein UPDATE-Befehl auf NULL ZEILEN auswirkt (es sollte in dieser Datei niemals einen Update-Befehl geben, der sich nicht auf einen Datensatz auswirkt, daher wird er als Fehler aufgezeichnet)
Das Dienstprogramm protokolliert auch alle fehlgeschlagenen Befehle.
Die endgültigen Daten in der Datenbank scheinen jedoch falsch/veraltet zu sein, obwohl mein Dienstprogramm keine fehlgeschlagenen Aktualisierungen und keine fehlgeschlagenen Befehle meldet.
Ich weiß, dass der erste und offensichtlichste Schuldige eine Art Logik- oder Laufzeitfehler in meiner Programmierung des Dienstprogramms selbst ist, aber ich muss nur wissen, ob es theoretisch möglich ist, dass SQL Server meldet, dass mindestens eine Zeile betroffen war und dennoch die Änderung nicht angewendet wird.
Wenn es hilft, scheint das Dienstprogramm immer die gleiche Anzahl von Befehlen korrekt auszuführen und die endgültigen veralteten/falschen Daten sind immer die gleichen, d. h. es scheint eine bestimmte Anzahl von Befehlen korrekt auszuführen, die erfolgreich von der Datenbank abgefragt werden und dann fehlschlagen.
Gracias.
EDIT:
Ich sollte auch anmerken, dass dieses Dienstprogramm dieses Verhalten auf 4 verschiedenen Produktionsservern zeigt, die jeweils ihren eigenen dedizierten lokalen Datenbankserver haben, und dass es sich dabei um leistungsstarke Rechner mit jeweils 8-16 GB RAM handelt, die von einem professionellen Systemadministrator verwaltet werden.