Есть ли элегантный способ отслеживать изменение всех столбцов одной таблицы в 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:
Связанные с этим вопросы (с большим количеством подсвязи):
- таблицы истории плюсы, минусы и gotchas - использование триггеров, sproc или на уровне приложения история таблицы плюсы, минусы и gotchas-использование триггеров, sproc или на уровне приложения
- предложения по внедрению таблиц аудита в SQL Server?
предложения по реализация таблиц аудита в SQL Server? - мягкие удаляет хорошая идея?
мягкие удаляет хорошая идея? - как я могу версия моей базы данных MS SQL в SVN? управление версиями базы данных SQL Server
- Томас LaRock. Аудит SQL Server: магия без Wizard
http://www.simple-talk.com/sql/database-administration/sql-server-audit-magic-without-a-wizard/
есть этот ресурс на MSDN, который вы можете найти полезным:
отслеживание изменений в базе данных сервера (включая SQL Server 2008)
Я не уверен, что вы используете SQL Server 2008.
генерация кода?
вы смотрели на методы, которые http://autoaudit.codeplex.com/ использует?
теоретически вы можете использовать 1 триггер и проверить COLUMNS_UPDATED (), чтобы узнать, какие столбцы изменились. (не тестировал) Видеть больше здесь