2016-01-13 2 views
0

У нас есть база данных на SQL Server 2008 R2, и данные в одной таблице загадочно исчезают время от времени. Данные вставляются через веб-приложение, вызывающее хранимую процедуру в базе данных. После того, как пользователь вводит данные и сохраняет их, он должен распечатать эти данные из-за бизнес-логики. Но, как я уже говорил, иногда данные исчезают из таблицы, содержащей 20 столбцов; один столбец (назовем его id_column) является PK и имеет свойство identity (1,1) on. После проверки данных в таблице мы заметили пробелы между значениями id_column, например: 100, 101, 102, 103, 106 ... поэтому отсутствовали 104 и 105. На этих идентификаторах должны быть данные, которые отсутствуют, и мы знаем, что они были там, потому что мы печатали отчет. Мы установили вместо триггера удаления в этой таблице, но удаленные строки не были захвачены. Также мы восстановили резервные копии журналов с момента, когда это произошло, но в файлах журналов не было действий удаления. Не могли бы вы помочь и объяснить, как они исчезают и как это предотвратить? Заранее спасибо.Данные таинственно исчезают из таблицы sql server

+0

БД зеркалируется или реплицируется? И если да, то какой тип? –

+0

Нет, не отражены или не реплицированы ... – Dalibor

+0

Что делает триггер включения? –

ответ

3

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

+0

Да, это логично ... мы используем хранимую процедуру для сохранения данных try ... catch и если что-то пошло не так со вставкой , откат транзакций ... но в этом случае данные не будут сохранены в таблице, и мы напечатали доказательства того, что они были там ... или что-то еще откат транзакции? Любая идея, кто и как? – Dalibor

+0

Фактически данные будут сохранены в таблице (по крайней мере, глядя из одного и того же соединения), и если ваша печать выполняется из того же соединения с базой данных, пока транзакция активна, но не совершена, то ваш сценарий вполне возможен. – Arvo

+0

@ Арво хорошо, ты прав ... и как это предотвратить? – Dalibor

Смежные вопросы