Есть ли элегантный способ отслеживать изменение всех столбцов одной таблицы в SQL Server 2008

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

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

4 ответов


Регистрация Изменить Захват Данных

обновление
CDC обеспечивает отслеживание всех деталей изменений. Доступно с SQL Server 2008.

(захват данных изменений доступен только в выпусках Enterprise, Developer и Evaluation SQL Server. Источник: http://msdn.microsoft.com/en-us/library/bb522489.aspx)

более легким решением является Отслеживание Изменений (Sync Framework), один code4life упоминалось ранее, доступно с SQL Server 2005.

обновление 2:
Связанные с этим вопросы (с большим количеством подсвязи):


есть этот ресурс на MSDN, который вы можете найти полезным:

отслеживание изменений в базе данных сервера (включая SQL Server 2008)

Я не уверен, что вы используете SQL Server 2008.


генерация кода?

вы смотрели на методы, которые http://autoaudit.codeplex.com/ использует?


теоретически вы можете использовать 1 триггер и проверить COLUMNS_UPDATED (), чтобы узнать, какие столбцы изменились. (не тестировал) Видеть больше здесь