2011-12-13 3 views
0

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

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

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

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

+0

Какое издание SQL Server вы используете? Enterprise? – gbn

+1

Вы пробовали настроить трассировку с помощью SQL Profiler? Похоже, это будет первое место для начала. Выполните действие в приложении и проследите, что произойдет. –

+0

@gbn Это стандарт – user489041

ответ

0

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

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

1

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

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

0

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

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