2015-07-29 3 views
0

У меня есть набор из 16 таблиц SQL Server, которые постоянно обновляются из веб-интерфейса. Мне нужно отслеживать каждое изменение, происходящее с этими таблицами, и вызывать отдельную систему каждые 10 минут, отправляя каждую вставленную или обновленную строку через службу Windows.Схема отслеживания обновлений таблицы SQL Server

Я могу дублировать схему и создать другой набор из 16 подобных таблиц для отслеживания изменений в исходном наборе. Будут триггеры, которые вставляют новую строку в таблицы отслеживания (плюс флаг ins/upd, временные метки и т. Д.) Каждый раз, когда изменяется соответствующая исходная таблица.

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

ответ

3

Если у вас есть Enterprise Edition, Change Data Capture - это опция, которая доступна вам.

Другие выпуски имеют Change Tracking, который не отслеживает историю, но может внести изменения в сеть.

Сравнение: https://technet.microsoft.com/en-us/library/Cc280519(v=SQL.105).aspx

+0

Спасибо, это должно работать отлично. Но на всякий случай, если DBA не разрешат включать CDC по каким-либо причинам, каков был бы лучший способ управлять отслеживанием вручную без дублирования каждой таблицы? – komratanomin

+0

Сначала обратитесь к своим администраторам баз данных. Представленные мной ссылки ** встроены в ** методы отслеживания изменений и должны быть наименьшим сопротивлением. Им лучше иметь некоторые * очень * веские причины, чтобы отказаться от использования функции SQL Server, которая делает то, что вам нужно, и значительно снижает накладные расходы и дублирование работы/данных. – alroc

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