Я бы хотел внести изменения, внесенные во все поля таблицы, в другую таблицу. Это будет использоваться для ведения истории всех изменений, внесенных в эту таблицу (Ваша основная таблица журнала изменений).
Каков наилучший способ сделать это в SQL Server 2005?
Я предполагаю, что логика будет помещена в некоторые триггеры.
Каков хороший способ пройти по всем полям, проверяя наличие изменений, без жесткого кодирования всех полей?
Как вы можете видеть из моих вопросов, пример кода был бы очень признателен.
Я заметил, что в SQL Server 2008 появилась новая функция, называемая Change Data Capture (CDC). (Вот хорошее видео Channel9 на CDC). Это похоже на то, что мы ищем, за исключением того, что мы используем SQL Server 2005, уже располагаем макетом таблицы журналов и также ведем журнал пользователя, который внес изменения. Мне также трудно оправдать написание до и после изображения всей записи, когда одно поле может измениться.
Наша текущая структура файла журнала имеет столбец для Имя поля, Старые данные, Новые данные.
Заранее спасибо и хорошего дня.
Обновлено 22.12.08: Я провел еще одно исследование и нашел эти два ответа на Live Search QnA
Вы можете создать триггер для этого. Увидеть
Как проверить изменения данных сервера sq l .
Вы можете использовать триггеры для регистрации изменений данных в таблицах журналов. Вы также можете приобрести Log Explorer у www.lumigent.com и использовать его для чтения журнала транзакций, чтобы узнать, какой пользователь внес изменения. Однако для этой опции база данных должна быть полностью восстановлена.
Обновление от 23.12.08: Я также хотел получить простой способ сравнить то, что изменилось, и это выглядело как обратная сторона PIVOT, который я обнаружил в SQL, называется UNPIVOT. Сейчас я склоняюсь к триггеру, использующему UNPIVOT для таблиц INSERTED и DELETED. Мне было любопытно, если это уже было сделано, поэтому я пытаюсь выполнить поиск по запросу " unpivot Удалено вставлено ".
- Публикация Использование функции обновления из триггера после имело несколько разных идей, но я все еще верю, что UNPIVOT будет тем путем, по которому нужно идти.