Поделиться через


sys.sp_flush_CT_internal_table_on_demand (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Эта хранимая процедура позволяет вручную очистить боковую таблицу (change_tracking_objectid) для таблицы в базе данных, для которой включено отслеживание изменений. Если параметр TableToClean не передается, этот процесс очищает все параллельные таблицы для всех таблиц в базе данных, где включено отслеживание изменений.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sys.sp_flush_CT_internal_table_on_demand
    [ @TableToClean = ] 'TableToClean'
    [ , [ @DeletedRowCount = ] DeletedRowCount OUTPUT ]
[ ; ]

Аргументы

[ @TableToClean = ] 'TableToClean'

Таблица отслеживания изменений, с поддержкой отслеживания изменений, для очистки вручную. Невыполненные работы остаются для автоматической очистки путем отслеживания изменений. Может иметь значение NULL для очистки всех параллельных таблиц.

[ @DeletedRowCount = ] 'Выходные данные DeletedRowCount

@DeletedRowCount — это параметр OUTPUT типа bigint. Этот параметр возвращает общее количество строк, которые были удалены во время процесса.

Значения кода возврата

0 (успешно) или 1 (сбой).

Примеры

DECLARE @DeletedRowCount BIGINT;

EXEC sys.sp_flush_CT_internal_table_on_demand '[Sales].[Orders]',
    @DeletedRowCount = @DeletedRowCount OUTPUT;

PRINT CONCAT('Number of rows deleted: ', @DeletedRowCount);
GO

Вот результирующий набор.

Started executing query at Line 1
Cleanup Watermark = 17
Internal Change Tracking table name : change_tracking_1541580530
Total rows deleted: 0.
Number of rows deleted: 0
Total execution time: 00:00:02.949

Замечания

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

При запуске хранимой процедуры происходит один из следующих сценариев:

  • Если таблица не существует или если отслеживание изменений не включено, возникают соответствующие сообщения об ошибках.

  • Эта хранимая процедура вызывает другую внутреннюю хранимую процедуру, которая очищает содержимое из боковой таблицы отслеживания изменений, основанной на недопустимой версии очистки с помощью динамического административного sys.change_tracking_tables представления. При выполнении отображается информация о общих строках, удаленных (для каждых 5000 строк).

Эта хранимая процедура доступна в следующих продуктах:

  • SQL Server 2016 (13.x) с пакетом обновления 1 и более поздних версий
  • База данных SQL Azure и Управляемый экземпляр SQL Azure

Разрешения

Эту процедуру может выполнять только член роли сервера sysadmin или db_owner роли базы данных.