sp_fulltext_table (Transact-SQL)

Aplica-se a:SQL ServerAzure Synapse Analytics

Marca ou desmarca uma tabela para indexação de texto completo.

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Em vez disso, use CREATE FULLTEXT INDEX, ALTER FULLTEXT INDEX e DROP FULLTEXT INDEX.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_fulltext_table
    [ @tabname = ] N'tabname'
    , [ @action = ] 'action'
    [ , [ @ftcat = ] N'ftcat' ]
    [ , [ @keyname = ] N'keyname' ]
[ ; ]

Argumentos

@tabname [ = ] N'tabname'

Um nome de tabela de uma ou duas partes. A tabela deve existir no banco de dados atual. @tabname é nvarchar(517), sem padrão.

@action [ = ] 'ação'

A ação a ser executada. @action é nvarchar(50), sem padrão, e pode ser um desses valores.

Valor Descrição
Criar Cria os metadados para um índice de texto completo para a tabela referenciada por @tabname e especifica que os dados de índice de texto completo para esta tabela devem residir em @ftcat. Essa ação também designa o uso de @keyname como a coluna de chave de texto completo. Este índice exclusivo já deve estar presente e deve ser definido em uma coluna da tabela.

Uma pesquisa de texto completo não pode ser executada nesta tabela até que o catálogo de texto completo seja preenchido.
Drop Descarta os metadados no índice de texto completo para @tabname. Se o índice de texto completo estiver ativo, ele será desativado automaticamente antes de ser descartado. Não é necessário remover colunas antes de descartar o índice de texto completo.
Ativar Ativa a capacidade de coletar dados de índice de texto completo para @tabname, depois de desativados. Deve haver pelo menos uma coluna participando do índice de texto completo para que ele seja ativado.

Um índice de texto completo torna-se ativo automaticamente (para população) assim que a primeira coluna é adicionada para indexação. Se a última coluna for descartada do índice, o índice se tornará inativo. Se o controle de alterações estiver ativo, a ativação de um índice inativo inicia um novo população.

Na verdade, isso não preenche o índice de texto completo, mas simplesmente registra a tabela no catálogo de texto completo no sistema de arquivos para que as linhas de @tabname possam ser recuperadas durante a próxima população de índice de texto completo.
Deactivate Desativa o índice de texto completo para @tabname para que os dados de índice de texto completo não possam mais ser coletados para o @tabname. Os metadados de índice de texto completo permanecem e a tabela pode ser reativada.

Se o controle de alterações estiver ativo, a desativação de um índice ativo congelará o estado do índice: qualquer população em andamento será interrompido e mais nenhuma alteração será propagada para o índice.
start_change_tracking Inicia uma população incremental do índice de texto completo. Se a tabela não tiver um carimbo de data/hora, inicie uma população completa do índice de texto completo. Inicia o controle de alterações na tabela.

O controle de alterações de texto completo não rastreia nenhuma operação WRITETEXT ou UPDATETEXT executada em colunas indexadas de texto completo que sejam do tipo image, text ou ntext.
stop_change_tracking Interrompe o controle de alterações na tabela.
update_index Propaga o conjunto atual de alterações controladas no índice de texto completo.
start_background_updateindex Inicia a propagação de alterações controladas no índice de texto completo conforme elas ocorrem.
stop_background_updateindex Interrompe a propagação de alterações controladas no índice de texto completo conforme elas ocorrem.
start_full Inicia uma população completa do índice de texto completo na tabela.
start_incremental Inicia uma população incremental do índice de texto completo na tabela.
Parar Interrompe uma população completa ou incremental.

@ftcat [ = ] N'ftcat'

Um nome de catálogo de texto completo válido e existente para uma ação de criação . Para todas as outras ações, esse parâmetro deve ser NULL. @ftcat é sysname, com um padrão de NULL.

@keyname [ = ] N'nome-chave'

Um índice não anulável exclusivo de coluna de chave única válido em @tabname para uma ação de criação. Para todas as outras ações, esse parâmetro deve ser NULL. @keyname é sysname, com um padrão de NULL.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Conjunto de resultados

Nenhum.

Comentários

Depois que um índice de texto completo é desativado para uma tabela específica, o índice de texto completo existente permanece em vigor até a próxima população completa; no entanto, esse índice não é usado porque o SQL Server bloqueia consultas em tabelas desativadas.

Se a tabela for reativada e o índice não for preenchido novamente, o índice antigo ainda estará disponível para consultas em todas as colunas habilitadas para texto completo restantes, mas não novas. É feita a correspondência de dados de colunas excluídas nas consultas que especificam uma pesquisa de todas as colunas de texto completo.

Depois que uma tabela tiver sido definida para indexação de texto completo, alternar a coluna de chave exclusiva de texto completo de um tipo de dados para outro, alterando o tipo de dados dessa coluna ou alterando a chave exclusiva de texto completo de uma coluna para outra, sem um repovoamento completo, pode causar uma falha durante uma consulta subsequente e retornar a mensagem de erro:

A conversão para o tipo data_type falhou para o valor da chave de pesquisa de texto completo key_value.

Para evitar esse erro, solte a definição de texto completo para esta tabela usando a ação soltar de sp_fulltext_table e redefini-la usando sp_fulltext_table e sp_fulltext_column.

A coluna de chave de texto completo deve ser definida para ter 900 bytes ou menos. É recomendável que o tamanho da coluna de chave seja o menor possível por motivos de desempenho.

Permissões

Somente membros da função de servidor fixa sysadmin , db_owner e db_ddladmin funções de banco de dados fixas ou um usuário com permissões de referência no catálogo de texto completo podem executar sp_fulltext_table.

Exemplos

R. Habilitar uma tabela para indexação de texto completo

O exemplo a seguir cria metadados do índice de texto completo da tabela Document do banco de dados AdventureWorks. Cat_Desc é um catálogo de texto completo. PK_Document_DocumentID é um índice exclusivo de uma única coluna em Document.

USE AdventureWorks2022;
GO

EXEC sp_fulltext_table 'Production.Document',
    'create',
    'Cat_Desc',
    'PK_Document_DocumentID';

--Add some columns
EXEC sp_fulltext_column 'Production.Document',
    'DocumentSummary',
    'add';

-- Activate the full-text index
EXEC sp_fulltext_table 'Production.Document',
    'activate';
GO

B. Ativar e propagar alterações de controle

O exemplo a seguir ativa e inicia a propagação alterações controladas no índice de texto completo conforme elas ocorrem.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_table 'Production.Document', 'Start_change_tracking';
EXEC sp_fulltext_table 'Production.Document', 'Start_background_updateindex';
GO

C. Remover um índice de texto completo

Este exemplo remove os metadados de índice de texto completo para a tabela Document do banco de dados AdventureWorks.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_table 'Production.Document', 'drop';
GO