У наших клиентов есть требование отслеживать изменения данных в базе данных, кто это сделал и когда (указывается в дополнительных столбцах).
Ранее мы добивались этого с помощью триггера для каждой таблицы, который вставляется в зеркальную таблицу аудита. Мы храним эти данные постоянно (и принимаем меры по архивированию только в том случае, если данные становятся очень большими).
Функции сбора измененных данных, встроенные в SQL-сервер, кажутся очень похожими, т.е. sys.sp_cdc_enable_table.
Проблема в том, что после изменения таблицы (добавления нового столбца) нам нужно будет отключить существующее отслеживание данных, а затем снова включить его, указав на другую таблицу CDC. К сожалению, sys.sp_cdc_disable_table отбрасывает исходную таблицу отслеживания - есть ли какой-нибудь простой способ предотвратить такое поведение (в идеале я бы просто оставил его на месте)? Кажется, я не могу переименовать таблицу через SQL Server Management Studio.
Я ценю, что мы могли бы писать сценарии и т. Д. Для копирования данных, но это потребует больше усилий, чем исходный подход. Я подозреваю, что нам, возможно, придется придерживаться первоначального подхода.
Я понимаю, что это не совсем то, для чего был разработан CDC, но если бы мы могли заставить его работать, это упростило бы нашу систему и сэкономило бы некоторые усилия.