Frage Fehlende Datensätze in SQL Server-Tabellen


Ich habe eine Datenbank mit einem Kunden, der Daten über Nacht zu verlieren scheint. Sie geben Datensätze ein und verlassen das System und behaupten dann, sie am nächsten Tag nicht wiederfinden zu können.

Die ID-Nummern im Primärschlüssel-Index der betroffenen Tabellen scheinen Lücken zu enthalten, wenn sie automatisch inkrementiert und fortlaufend sein sollten. Der Client verfügt nicht über die Möglichkeit, Datensätze zu löschen. Es scheint also ein Problem zu bestehen.

Ich habe es versucht DBCC CHECKDB und DBCC REINDEX aber die Datensätze werden nicht mehr angezeigt und das Problem wird fortgesetzt.

Beim Beenden der VB.NET 2010 App verwende ich Folgendes, um den Datensatz für jede Tabelle zu schreiben:

Me.binds_Tablename1.EndEdit()
Me.binds_Tablename2.EndEdit()
TableAdapterManager.UpdateAll(Me.Dataset_1)

Dieses System hat 2 Jahre lang funktioniert, aber jetzt spielt es sich aus. Könnte die Beschädigung der Datenbank das Problem sein?


9
2018-01-10 15:26


Ursprung


Antworten:


Da dies gerade begonnen hat, ist es möglich, dass sie 2012 irgendwo eintreten oder mit dem Jahr 2012 in Verbindung stehen, vielleicht existiert dieser Wert nicht in einer Nachschlagetabelle, die Transaktion wird zurückgerollt

Wenn eine Transaktion rückgängig gemacht wird, wird der Identitätswert NICHT wiederverwendet. Aus diesem Grund sehen Sie Lücken. Sie müssen herausfinden, warum Sie Rollbacks haben


3
2018-01-10 15:35



Wenn Speicher dient, die TableAdapterManager.UpdateAll() Methode umschließt die Aktualisierungen in einer Transaktion. Autoinkrementierungsfelder werden außerhalb von Transaktionen inkrementiert. Daher würde ich vermuten, dass einige Ihrer Transaktionen möglicherweise rückgängig gemacht werden.


2
2018-01-10 15:32



Dies scheint jetzt sortiert zu sein - der Client hat eine gespiegelte Festplatte ausgeführt, von denen eine mit SMART-Fehlerberichten zu stürzen begann. Da dies ersetzt wurde, ist das Problem nicht erneut aufgetreten.

Danke für die Hilfe!


0
2018-02-03 14:17