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 роли базы данных.