Partilhar via


sp_fulltext_catalog (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Cria e remove um catálogo de texto completo, e inicia e interrompe a ação de indexação de um catálogo. Catálogos de texto completo podem ser criados para cada banco de dados.

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 CATALOG, ALTER FULLTEXT CATALOG e DROP FULLTEXT CATALOG.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_fulltext_catalog
    [ @ftcat = ] N'ftcat'
    , [ @action = ] 'action'
    [ , [ @path = ] N'path' ]
[ ; ]

Argumentos

@ftcat [ = ] N'ftcat'

Nome do catálogo de texto completo. Nomes de catálogo devem ser exclusivos para cada banco de dados. @ftcat é sysname, sem padrão.

@action [ = ] 'ação'

A ação a ser executada. @action é varchar(20) e pode ser um desses valores.

Observação

Os catálogos de texto completo podem ser criados, descartados e modificados conforme necessário. Entretanto, evite fazer alterações de esquema em vários catálogos ao mesmo tempo. Essas ações podem ser executadas usando o sp_fulltext_table procedimento armazenado, que é a maneira recomendada.

Valor Descrição
create Cria um novo catálogo de texto completo vazio no sistema de arquivos e adiciona uma linha associada com sysfulltextcatalogs os valores @ftcat e @path, se houver. @ftcat deve ser exclusivo no banco de dados.
remover Descarta @ftcat removendo-o do sistema de arquivos e excluindo a linha associada em sysfulltextcatalogs. Haverá falha nessa ação se esse catálogo contiver índices para uma ou mais tabelas. sp_fulltext_table '<table_name>', 'drop' deve ser executado para remover as tabelas do catálogo.

Um erro será exibido se o catálogo não existir.
start_incremental Inicia uma população incremental para @ftcat. Um erro será exibido se o catálogo não existir. Se uma população de índice de texto completo já estiver ativa, um aviso será exibido, mas nenhuma ação de população ocorrerá. Com a população incremental, somente as linhas alteradas são recuperadas para indexação de texto completo, desde que haja uma coluna de carimbo de data/hora presente na tabela que está sendo indexada de texto completo.
start_full Inicia uma população completa para @ftcat. Todas as linhas de todas as tabelas associadas a esse catálogo de texto completo são recuperadas para a indexação de texto completo, mesmo que já tenham sido indexadas.
stop Interrompe uma população de índice para @ftcat. Um erro será exibido se o catálogo não existir. Nenhum aviso será exibido se a população já estiver parada.
rebuild Reconstrói @ftcat. Quando um catálogo é recriado, o catálogo existente é excluído e um novo catálogo é criado em seu lugar. Todas as tabelas que têm referências de indexação de texto completo são associadas ao novo catálogo. A recriação redefine os metadados de texto completo nas tabelas do sistema de banco de dados.

Se o controle de alterações estiver DESATIVADO, a recompilação não causará um repovoamento do catálogo de texto completo recém-criado. Nesse caso, para preencher novamente, execute sp_fulltext_catalog com a ação start_full ou start_incremental .

@path [ = ] N'caminho'

O diretório raiz (não o caminho físico completo) para uma ação de criação . @path é nvarchar(100), com um padrão de NULL, que indica o uso do local padrão especificado na configuração.

Este é o FTData subdiretório no MSSQL diretório; por exemplo, C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\FTData. O diretório raiz especificado deve residir em uma unidade no mesmo computador, consistir em mais do que apenas a letra da unidade e não pode ser um caminho relativo. Não há suporte para unidades de rede, unidades removíveis, disquetes e caminhos UNC. Os catálogos de texto completo devem ser criados em um disco rígido local associado a uma instância do SQL Server.

@path é válido somente quando @action é criado. Para ações diferentes de criar (parar, recompilar e assim por diante), @path deve ser NULL ou omitida.

Se a instância do SQL Server for um servidor virtual em um cluster, o diretório de catálogo especificado precisará estar em uma unidade de disco compartilhada da qual o recurso do SQL Server depende. Se @path não for especificado, o local do diretório de catálogo padrão estará na unidade de disco compartilhado, no diretório especificado quando o servidor virtual foi instalado.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Conjunto de resultados

Nenhum.

Comentários

A ação start_full é usada para criar um instantâneo completo dos dados de texto completo em @ftcat. A ação start_incremental é usada para reindexar apenas as linhas alteradas no banco de dados. A população incremental só poderá ser aplicada se a tabela tiver uma coluna do tipo timestamp. Se uma tabela no catálogo de texto completo não contiver uma coluna do tipo timestamp, a tabela passará por uma população completa.

Os dados do catálogo de texto completo e do índice são armazenados em arquivos criados em um diretório de catálogo de texto completo. O diretório de catálogo de texto completo é criado como um subdiretório do diretório especificado no @path ou no diretório de catálogo de texto completo padrão do servidor, se @path não for especificado. O nome do diretório de catálogo de texto completo é criado de uma forma que garante que ele seja exclusivo no servidor. Portanto, todos os diretórios de catálogo de texto completo em um servidor podem compartilhar o mesmo caminho.

Permissões

O chamador deve ser membro da função db_owner . Dependendo da ação solicitada, o chamador não deve ter permissões ALTER ou CONTROL negadas (que db_owner tem) no catálogo de texto completo de destino.

Exemplos

R. Criar um catálogo de texto completo

Este exemplo cria um catálogo de texto completo vazio, Cat_Desc, no AdventureWorks2022 banco de dados.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'create';
GO

B. Recompilar um catálogo de texto completo

Este exemplo recria um catálogo de texto completo existente, Cat_Desc, no AdventureWorks2022 banco de dados.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'rebuild';
GO

C. Iniciar a população de um catálogo de texto completo

Este exemplo inicia uma população completa do Cat_Desc catálogo.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO

D. Interromper a população de um catálogo de texto completo

Este exemplo interrompe o Cat_Desc preenchimento do catálogo.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'stop';
GO

E. Remover um catálogo de texto completo

Este exemplo remove o Cat_Desc catálogo.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'drop';
GO