3

У меня проблема, когда у меня есть веб-приложение с использованием Entity Framework, подключенного к базе данных SQL Server. В случайные интервалы данные в одной из моих таблиц продолжают очищаться. Около 90% данных удаляется.Данные, исчезающие из базы данных SQL Server

Мы просмотрели веб-приложение и не можем найти никаких инструкций по удалению, не говоря уже о одном из них.

У нас был профайлер SQL Server, но это не вызвало никаких операторов удаления. Тем не менее, у меня также есть триггер ON DELETE в этой таблице, чтобы скопировать удаленные данные в резервную таблицу, и это выполняется и триггеры в порядке, поэтому, похоже, существует конфликт по поводу того, действительно ли выполнялись инструкции удаления. На сервере также есть сотни ГБ пространства, поэтому нехватка места не является проблемой.

Мы исследовали столько, сколько мы можем безрезультатно, и теперь у нас нет идей.

Поэтому, если кто-нибудь знает о какой-либо причине, это может произойти, я был бы очень благодарен за любую помощь.

Заранее спасибо.

+0

Я не понимаю, что вы подразумеваете под конфликтом, когда говорите о триггере удаления. Ваш триггер delete должен был собрать все удаленные записи, если это не так, как кто-то отключил этот триггер. – GuidoG

+2

У вас есть внешний ключ с каскадным удалением где-нибудь? Каскадное удаление должно быть запрещено из любой базы данных imho – GuidoG

+0

Мысли, а не правильный ответ: может ли это быть MERGE? Я столкнулся с плохо написанными слияниями, которые случайно удалили вещи раньше. Я не уверен, нужно ли им трассировать по-разному в профилировщике, но, возможно, стоит посмотреть. –

ответ

1

Вы должны проверить, включено ли каскадное удаление. Этот запрос может помочь вам в этом:

SELECT name, 
     delete_referential_action_desc 
FROM sys.foreign_keys 

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

+0

этот запрос возвращает NO_ACTION для всех внешних ключей, поэтому я предполагаю, что нет каскад удалить? и сторона EF, которую я уже проверил, и все выключено. +1 для полезного запроса, хотя – DaRoGa

+0

Да, это означает, что каскадное удаление не является источником вашей проблемы. У меня нет другой идеи, где искать свою проблему сейчас, извините – GuidoG

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