2010-09-08 3 views
1

Когда строки таблицы изменены, эти измененные строки записываются в XML и сообщают мне, что таблица была изменена.уведомление о том, что строки таблицы были изменены

Как я могу это сделать?

+0

Проблема в том, что я не мог изменить сохраненный процесс. Возможно, я могу добавить триггер вместо этого. Но как я могу узнать об этих изменениях. Есть ли хороший способ сделать это? – Ariver

ответ

1

Если вы ищете строгое TSQL или SQL Server решение:

  • написать хранимую процедуру для обработки UPDATE, DELETE и INSERT функциональности.
  • отрицает UPDATE, DELETE и INSERT пользователь
  • позволяет EXEC для пользователей этой новой хранимой процедуры
  • при каждом вызове хранимого прока, сделать запись в другую таблицу, специально построенную для проведения аудита.
  • напишите SQL-задание, чтобы опросить эту таблицу аудита для новых записей. Используйте SQL Mail для отправки электронной почты. Вы не знали о том, какое уведомление вы хотели, но я принял электронную почту.

второй менее привлекательным решением: Вы можете также использовать триггеры на столе, чтобы захватить деятельность UPDATE, DELETE и INSERT. Строго рассмотрите хранимое решение proc над триггерами.

+0

+1: Триггеры более гибкие, если это для обслуживания, а не для новой разработки. –

+0

@OMG: Я всегда возвращаюсь назад и вперед по триггерам. Даже получить downvotes для даже предлагая их в качестве второго варианта на SO. Этот сценарий кричал «слишком много вещей, чтобы сделать» для триггера. Аудит забавный, но он может идти в любом случае, а также в зависимости от окружающей среды. 50-50. –

+0

Да, иногда вещи «модные». Если это новый разработчик, я избегаю триггеров, если это вообще возможно, и предпочитаю, чтобы все проходили через хранимые процедуры. Я пришел, чтобы принять триггеры больше, но все равно не хочу ОРМ вообще. –

0

Если вы не можете изменить способ изменения данных в своей таблице, лучшим решением будет настройка триггера для записи изменений в отдельной таблице, а затем запись некоторого кода для периодического опроса этой таблицы и создания xml-файл.

Стоит отметить, что это потенциально замедлит работу вашего db при редактировании данных в этой таблице (полезно для аудита, когда пользователи вносят изменения, плохо для программно измененных данных), и любые ошибки, возникающие от триггера, приводят к довольно вводящим в заблуждение сообщений, отброшенных из сервера sql.

См. this question для некоторых указателей на настройку триггера.

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