уведомление о том, что строки таблицы были изменены - PullRequest
1 голос
/ 08 сентября 2010

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

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

Ответы [ 2 ]

1 голос
/ 08 сентября 2010

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

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

2-е менее привлекательное решение: вы также можете использовать триггеры на столе для захвата действий UPDATE, DELETE и INSERT. Настоятельно рассмотрите возможность хранения хранимых процедур над триггерами.

0 голосов
/ 08 сентября 2010

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

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

См. этот вопрос , где приведены некоторые указания по настройке триггера.

...