Есть ли элегантный способ отслеживать изменения всех столбцов одной таблицы в SQL Server 2008 - PullRequest
6 голосов
/ 14 октября 2010

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

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

Ответы [ 4 ]

3 голосов

Проверка Изменение сбора данных

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

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

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

Update2:
Вопросы по теме (с большим количеством ссылок):

1 голос
/ 14 октября 2010

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

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

1 голос
/ 14 октября 2010

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

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

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

0 голосов
/ 14 октября 2010

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

...