Найти различия в базе данных после вставки - PullRequest
0 голосов
/ 13 декабря 2011

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

База данных, которую я унаследовал. Ни одна из таблиц или столбцов не имеет логических имен. Даже если имена действительно что-то значат, документация по ним давно потеряна. Я пытаюсь вставить / удалить элемент в базе данных, и он, кажется, каждый раз портит его.

Что я хотел бы сделать, так это как-то сохранить состояние базы данных перед вставкой / удалением, вставить / удалить в базу данных, а затем сохранить состояние базы данных после вставки / удаления. Делая это, я могу видеть, какие именно таблицы обновляются и с какими значениями. Затем я могу честно попытаться изменить приложение для использования базы данных.

Существуют ли какие-либо инструменты для этого? Это вообще возможно? Есть ли другой способ достичь своей цели?

Ответы [ 3 ]

1 голос
/ 14 декабря 2011

Мое первое предположение - триггер на столе, к которому вы вставляете.

Вы должны запустить профилировщик и посмотреть, что именно происходит.

0 голосов
/ 14 декабря 2011

Я согласен с другими, что вы должны начать с SQL Profiler.Если вы правильно установите критерии, вы должны легко увидеть, какие действия выполняются во время вставки и удаления команд, которые приводят к повреждению.

0 голосов
/ 13 декабря 2011

Вы можете использовать Create & Insert для создания резервной копии каждой затронутой таблицы перед изменением вашей базы данных (если вам требуется резервное копирование в течение короткого времени, временные таблицы или переменная таблицы могут работать).Затем вам нужно будет сделать запрос, который сравнивает до и после.

Если ваши наборы записей достаточно малы, и вы делаете это вручную, копирования и вставки в Excel может быть достаточно.

...