Share via


sp_fulltext_table (Transact-SQL)

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

Observação importanteImportante

Esse recurso será removido em uma versão futura do Microsoft 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.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_fulltext_table 
   [ @tabname= ] 'qualified_table_name'         
      , [ @action= ] 'action' 
   [ 
      , [ @ftcat= ] 'fulltext_catalog_name'         
      , [ @keyname= ] 'unique_index_name' 
   ]

Argumentos

  • [ @tabname=] 'qualified_table_name'
    É um nome de tabela de uma ou duas partes. A tabela deve existir no banco de dados atual. qualified_table_name é nvarchar (517), sem nenhum padrão.

  • [ @action=] 'action'
    É a ação a ser executada. action é nvarchar (50), sem nenhum padrão, e pode ser um destes valores.

    Valor

    Descrição

    Create

    Cria os metadados em um índice de texto completo para a tabela referenciada por qualified_table_name e especifica que os dados de índice de texto completo devem residir em fulltext_catalog_name. Esta ação também designa o uso de unique_index_name 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 nessa tabela até que o catálogo de texto completo seja populado.

    Drop

    Descarta os metadados no índice de texto completo para qualified_table_name. Se o índice de texto completo for ativo, será desativado automaticamente antes de ser descartado. Não é necessário remover colunas antes de descartar o índice de texto completo.

    Activate

    Ativa a capacidade de os dados de índice de texto completo serem coletados para qualified_table_name, depois que ele é desativado. 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.

    Observe que isso não popula realmente o índice de texto completo, mas apenas registra a tabela no catálogo de texto completo no sistema de arquivos, para que as linhas de qualified_table_name possam ser recuperadas durante a próxima população de índice de texto completo.

    Deactivate

    Desativa o índice de texto completo para qualified_table_name de forma que os dados de índice de texto completo não possam mais ser coletados para o qualified_table_name. 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, inicia 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 controla nenhuma operação WRITETEXT ou UPDATETEXT executada nas 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.

    Stop

    Interrompe uma população completa ou incremental.

  • [ @ftcat=] 'fulltext_catalog_name'
    É um nome de catálogo de texto completo válido e existente para uma ação create. Para todas as outras ações, este parâmetro deve ser NULL. fulltext_catalog_name é sysname, com um padrão NULL.

  • [ @keyname=] 'unique_index_name'
    É um índice exclusivo não anulável de coluna de chave única válido em qualified_table_name para uma ação create. Para todas as outras ações, este parâmetro deve ser NULL. unique_index_name é sysname, com um padrão NULL.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Conjuntos de resultados

Nenhum

Comentários

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

Se a tabela é reativada e o índice não é populado novamente, o antigo índice permanece disponível para consultas em qualquer coluna restante habilitada para texto completo que não seja nova. É 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 é definida para indexação de texto completo, a alternância da coluna de chave exclusiva de texto completo de um tipo de dados para outro, seja alterando o tipo de dados dessa coluna ou a chave exclusiva de texto completo de uma coluna para outra, sem uma nova população completa, pode fazer com que ocorra uma falha durante uma consulta subsequente e seja retornada a mensagem de erro: "A conversão para o tipo data_type falhou para o valor de chave de pesquisa de texto completo key_value". Para evitar isso, descarte a definição de texto completo para essa tabela usando a ação drop de sp_fulltext_table e redefine-a 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, das funções de banco de dados fixas db_owner e db_ddladmin ou um usuário com permissões de referência no catálogo de texto completo podem executar sp_fulltext_table.

Exemplos

A. Habilitando uma tabela para indexação de texto completo

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

USE AdventureWorks2008R2;
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. Ativando e propagando alterações controladas

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

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

C. Removendo um índice de texto completo

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

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