Share via


sys.sp_flush_CT_internal_table_on_demand (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Esse procedimento armazenado permite limpar manualmente a tabela lateral (change_tracking_objectid) de uma tabela em um banco de dados para o qual o controle de alterações está habilitado. Se o parâmetro TableToClean não for passado, esse processo limpará todas as tabelas laterais de todas as tabelas no banco de dados em que o controle de alterações está habilitado.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

@TableToClean [ = ] 'TableToClean'

A tabela habilitada para controle de alterações a ser limpa manualmente. As listas de pendências são deixadas para a limpeza automática pelo controle de alterações. Pode ser nulo para limpar todas as mesas laterais.

@DeletedRowCount [ = ] 'SAÍDA de DeletedRowCount

@DeletedRowCount é um parâmetro OUTPUT do tipo bigint. Esse parâmetro retorna o número total de linhas que foram limpas durante o processo.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Exemplos

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

Este é o conjunto de resultados.

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

Comentários

Esse procedimento deve ser executado em um banco de dados que tenha o controle de alterações habilitado.

Quando você executa o procedimento armazenado, um dos seguintes cenários acontece:

  • Se a tabela não existir ou se o controle de alterações não estiver habilitado, as mensagens de erro apropriadas serão lançadas.

  • Esse procedimento armazenado chama outro procedimento armazenado interno que limpa o conteúdo da tabela lateral de controle de alterações baseada na versão de limpeza inválida usando o sys.change_tracking_tables modo de exibição de gerenciamento dinâmico. Quando está em execução, ele mostra as informações do total de linhas excluídas (para cada 5000 linhas).

Esse procedimento armazenado está disponível nos seguintes produtos:

  • SQL Server 2016 (13.x) Service Pack 1 e versões posteriores
  • Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure

Permissões

Somente um membro da função de servidor sysadmin ou db_owner função de banco de dados pode executar este procedimento.