Автоматически регистрировать изменения, внесенные в записи в базе данных - PullRequest
1 голос
/ 25 июля 2011

Мне интересно, как лучше всего это реализовать.
В основном наш проект требует, чтобы любые изменения, внесенные в записи в базе данных, регистрировались. Я уже закончил это в C #, используя Отражение и Обобщения, но я на 100% уверен, что я использовал лучший метод.

Есть ли способ сделать это из базы данных SQL?

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

Ответы [ 5 ]

4 голосов
/ 25 июля 2011

Если вы используете SQL Server 2008 или более позднюю версию, вы можете реализовать либо отслеживание изменений , либо захват изменений непосредственно в базе данных. Обратите внимание, что последний доступен только в ядре Enterprise Edition. У каждого метода есть свои плюсы и минусы. Вам нужно будет рассмотреть каждое решение для себя, так как для ответа на вопрос недостаточно информации о требованиях.

Если вы используете SQL Server 2005 или ниже, вам придется прибегнуть к решению на основе триггера, как это предлагается в других ответах.

4 голосов
/ 25 июля 2011

Вы хотите посмотреть на базу данных Триггеры .

0 голосов
/ 25 июля 2011

Для вашего проекта триггер SQL - лучшее решение, чем текущее отражение C #. Триггеры Becaz предоставляют системе управления базами данных возможность активно контролировать, контролировать и управлять группой таблиц всякий раз, когда выполняется операция вставки, обновления или удаления. Более того, требование полностью выполнено на уровне самой базы данных и размещено как единое решение для различных приложений переднего плана.

0 голосов
/ 25 июля 2011

Загляните в мой блог, чтобы узнать, как можно отслеживать изменения данных без изменения схемы базы данных: part1 , part2

0 голосов
/ 25 июля 2011

в зависимости от сложности вашей модели данных вы можете настроить триггеры обновления / вставки / удаления в соответствующих таблицах - эти триггеры могут регистрировать все, что нужно (старые / новые значения, пользователь, метка времени и т. Д.) ... см. http://msdn.microsoft.com/de-de/library/ms189799.aspx

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