Отключение системы отслеживания измененных данных

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

Отключение системы отслеживания измененных данных для базы данных

Член предопределенной роли сервера sysadmin может вызвать на выполнение хранимую процедуру sys.sp_cdc_disable_db (Transact-SQL) в контексте базы данных, чтобы отключить систему отслеживания измененных данных для базы данных. Нет необходимости отключать отдельные таблицы, прежде чем будет выполнено отключение базы данных. Отключение базы данных приводит к удалению всех соответствующих метаданных системы отслеживания измененных данных, включая пользователя cdc и схему, а также задания отслеживания измененных данных. Но любые шлюзовые роли, созданные системой отслеживания измененных данных, не будут удалены автоматически, поэтому необходимо выполнить их явное удаление. Чтобы определить, включена ли база данных, выполните запрос к столбцу is_cdc_enabled в представлении каталога sys.databases.

После удаления базы данных, в которой включена система отслеживания измененных данных, автоматически удаляются задания отслеживания измененных данных.

Пример отключения базы данных см. в шаблоне отключения системы отслеживания измененных данных в базе данных».

Важное примечаниеВажно!

Чтобы найти шаблоны в среде Среда SQL Server Management Studio, перейдите к элементу Просмотр, нажмите кнопку Обозреватель шаблонов, а затем нажмите кнопку Шаблоны SQL Server. Система отслеживания измененных данных — это подпапка, в которой можно найти все шаблоны, упомянутые в этом разделе. Также имеется значок Обозреватель шаблонов на панели инструментов среды Среда SQL Server Management Studio.

-- =================================

-- Шаблон отключения системы отслеживания измененных данных для базы данных

-- =================================

USE MyDB
GO

EXEC sys.sp_cdc_disable_db
GO

Отключение системы отслеживания измененных данных для таблицы

Члены предопределенной роли базы данных db_owner могут удалять экземпляр системы отслеживания для отдельных исходных таблиц с помощью хранимой процедуры sys.sp_cdc_disable_table. Чтобы определить, включена ли в настоящее время для исходной таблицы система отслеживания измененных данных, рассмотрите столбец is_tracked_by_cdc в представлении каталога sys.tables. Если после того, как имело место отключение, отсутствуют какие-либо таблицы, включенные для базы данных, также происходит удаление заданий отслеживания измененных данных.

Если удаляется информация об изменениях в таблице с включенным отслеживанием измененных данных, то автоматически удаляются метаданные системы отслеживания измененных данных, которые связаны с этой таблицей.

Пример отключения таблицы см. в шаблоне отключения экземпляра системы отслеживания для таблицы.

-- ===============================================

-- Шаблон отключения экземпляра системы отслеживания для таблицы

-- ===============================================

USE MyDB
GO

EXEC sys.sp_cdc_disable_table
@source_schema = N'dbo',
@source_name   = N'MyTable',
@capture_instance = N'dbo_MyTable'
GO