Отсутствующие записи в таблицах SQL-сервера - PullRequest
9 голосов
/ 10 января 2012

У меня есть база данных с клиентом, который, похоже, теряет данные в одночасье. Они вводят записи и выходят из системы, а затем утверждают, что не смогут найти их снова на следующий день.

Идентификационные номера в индексе первичного ключа соответствующих таблиц, похоже, имеют пробелы, когда они должны быть автоматически увеличены и непрерывны. У клиента нет возможности удалить записи, поэтому проблема, похоже, есть.

Я пытался использовать DBCC CHECKDB и DBCC REINDEX, но записи не появляются снова, и проблема продолжается.

При выходе из приложения VB.NET 2010 я использую следующее для записи записи для каждой таблицы:

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

Эта система работала нормально в течение 2 лет, но сейчас работает. Может ли быть проблема с повреждением базы данных?

Ответы [ 3 ]

3 голосов
/ 10 января 2012

с тех пор, как это только началось, возможно ли, что они где-то входят в 2012 или это связано с 2012 годом, возможно, это значение не существует в таблице поиска, транзакция откатывается

Когда транзакция откатывается, значение идентификатора НЕ используется повторно, поэтому вы видите пробелы, вам нужно выяснить, почему у вас есть откаты

2 голосов
/ 10 января 2012

Если память используется, метод TableAdapterManager.UpdateAll() упаковывает обновления в транзакцию.Поля автоинкремента увеличиваются вне транзакций, поэтому я предполагаю, что некоторые ваши транзакции могут откатываться.

0 голосов
/ 03 февраля 2012

Теперь это похоже на сортировку - клиент работал с зеркальным жестким диском, один из которых начинал падать с отчетами об ошибках SMART. С тех пор как это было заменено, проблема больше не возникала.

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...