Здравствуйте, dronlinux, Вы писали:
D>Доброго всем времени суток! Подскажите пожайлуста куда копать...
D>Сервер MS SQL 2000. Есть таблица с данными (более 40 полей) встала задача сохранять историю записей этой таблицы. В среднем таблица имеет 300.000 записей. История нужна для ведения в течение года, чтобы потом выцеплять изменения данных в течение определенного периода. Какой вижу выход(помидорами не закидывать): D>1. Делать бэкап таблицы каждый раз после изменений (но данный способ кажется мне неподходящим) D>2. Весить триггеры на таблицу(ы) и отслеживать Update, Insert, Delete. НО, так как база не моя, над таблицей проводится множество апдейтов по разным полям, поэтому триггер отрабатывая после каждого апдейта будет заносить в таблицу истории лишние данные, а надо всю строку. D>3. Добавлять доп.столбцы в основную таблицу и отслеживать дату
D>Подскажите кто как выходил из данной ситуации?
С триггером мне кажется оптимально — или несколько полей меняются отдельными апдейтами?
Как вариант, в триггере каким либо образом проверять что копию сегодня уже делали (т.е. не первое обновление) и не делать дополнительную копию. В версионной таблице фактически будут хранится варианты на начало дня, и если в этот день был хоть один апдейт.