sp_fulltext_table (Transact-SQL)
Marca ou desmarca uma tabela para indexação de texto completo.
Importante |
---|
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. |
Convenções da 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 padrão.[ @action=] 'action'
É a ação a ser executada. action é nvarchar(50), sem padrão e pode ter 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, esse parâmetro deve ser NULL. fulltext_catalog_name é sysname, com um padrão de 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, esse parâmetro deve ser NULL. unique_index_name é sysname, com um padrão de 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 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 AdventureWorks;
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 AdventureWorks;
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 AdventureWorks.
USE AdventureWorks;
GO
EXEC sp_fulltext_table 'Production.Document', 'drop';
GO
Consulte também
Referência
sp_help_fulltext_tables (Transact-SQL)
sp_help_fulltext_tables_cursor (Transact-SQL)
Procedimentos armazenados do sistema (Transact-SQL)
Procedimentos armazenados de pesquisa de texto completo e pesquisa semântica (Transact-SQL)