4 Stimmen

Mögliche Indexbeschädigung?

Beweis

In dem obigen Bild sehen Sie, dass ich eine Tabelle habe, in der ich einen Maximalwert eines Feldes abfrage und basierend auf einer WHERE-Klausel unterschiedliche Ergebnisse erhalte, die der Rest der Abfragen als irrelevant ausschließen zu scheinen.

Das Back-End ist MSDE 2000, das Front-End ist eine Anwendung, die in VB.NET 2008 geschrieben wurde, die Überprüfung wird mit SSMS 2008R2 durchgeführt, das mit der MSDE-Instanz über VPN verbunden ist.

Es handelt sich um ein geschlossenes System der Anwendungsentwicklung, jedoch glaube ich, dass sowohl die Datenbank als auch die Anwendung den Betrieb wieder aufnehmen würden, wenn ich den Fehler beheben könnte, der dies verursacht.

Das Problem tritt auf, wenn es Max([record_index]) + 1 anfordert, wobei [station_id] = 10, der Wert als Datensatz erscheint, der bereits in dieser Tabelle existiert, und das Einfügen aufgrund eines eindeutigen Constraints fehlschlägt.

1voto

Sabre Punkte 2300

Der Reindex des PK-Index hat das Problem gelöst und sorgt dafür, dass die obigen Abfragen für Max([record_index]) die gleiche Nummer zurückgeben wie Max([record_index]) WO... die gleichen Zahlen zurückgeben, wie sie sollten. An diesem Punkt ist Indexkorruption die einzige logische Antwort. Die Datenbank-Engine ist 12 Jahre alt, und das ist das einzige Mal, dass uns das passiert ist. Ich denke, ich werde mich einfach damit abfinden müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X