Partilhar via


sp_fulltext_catalog (Transact-SQL)

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

Cria e coloca um catálogo de texto completo, e inicia e para a ação de indexação de um catálogo. Podem ser criados vários catálogos em texto completo para cada base de dados.

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. Use CRIAR CATÁLOGO INTEGRAL, ALTERAR CATÁLOGO INTEGRAL, e DROP CATÁLOGO DE TEXTO COMPLETO.

Transact-SQL convenções de sintaxe

Sintaxe

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

Arguments

[ @ftcat = ] N'ftcat'

O nome do catálogo de texto completo. Os nomes dos catálogos devem ser únicos para cada base 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

Catálogos em texto completo podem ser criados, retirados e modificados conforme necessário. No entanto, evite fazer alterações de esquema em vários catálogos ao mesmo tempo. Estas ações podem ser realizadas usando o sp_fulltext_table procedimento armazenado, que é a forma recomendada.

Valor Description
create Cria um novo catálogo de texto completo vazio no sistema de ficheiros e adiciona uma linha sysfulltextcatalogs associada com os valores de @ftcat e @path, se estiverem presentes. @ftcat deve ser única dentro da base de dados.
drop Elimina @ftcat ao removê-lo do sistema de ficheiros e eliminar a linha associada em sysfulltextcatalogs. Esta ação falha se este catálogo contiver índices de uma ou mais tabelas. sp_fulltext_table '<table_name>', 'drop' deve ser executado para retirar as tabelas do catálogo.

É apresentado um erro se o catálogo não existir.
start_incremental Inicia uma população incremental para @ftcat. É apresentado um erro se o catálogo não existir. Se uma população indexada em texto completo já estiver ativa, é exibido um aviso, mas não ocorre qualquer ação populacional. Com a população incremental, apenas as linhas alteradas são recuperadas para indexação em texto completo, desde que haja uma coluna de carimbo temporal presente na tabela que está indexada em texto completo.
start_full Inicia uma população completa para @ftcat. Cada linha de todas as tabelas associadas a este catálogo de texto completo é recuperada para indexação de texto completo, mesmo que já tenham sido indexadas.
Pára Para uma população índice para @ftcat. É apresentado um erro se o catálogo não existir. Não é apresentado qualquer aviso se a população já estiver parada.
Reconstrução Reconstrui @ftcat. Quando um catálogo é reconstruído, o catálogo existente é eliminado e um novo catálogo é criado no seu lugar. Todas as tabelas que têm referências de indexação em texto completo estão associadas ao novo catálogo. A reconstrução reinicia os metadados de texto completo nas tabelas do sistema da base de dados.

Se o acompanhamento de alterações estiver DESLIGADO, a reconstrução não causa uma repovoação do novo catálogo de texto completo. Neste caso, para repovoar, 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 create . @path é nvarchar(100), com um padrão de NULL, que indica o uso da localização padrão especificada 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 numa unidade do mesmo computador, consistir em mais do que apenas a letra da unidade e não pode ser um caminho relativo. Unidades de rede, unidades removíveis, disquetes e caminhos UNC não são suportados. Os catálogos em texto completo devem ser criados num disco rígido local associado a uma instância do SQL Server.

@path é válido apenas quando @actioné criado. Para ações que não sejam criar (parar, reconstruir, e assim por diante), @path deve ser NULL ou omitido.

Se a instância do SQL Server for um servidor virtual num cluster, o diretório de catálogo especificado precisa de estar numa unidade de disco partilhada da qual o recurso do SQL Server depende. Se @path não for especificado, a localização do diretório de catálogo predefinido está na unidade de disco partilhada, no diretório especificado quando o servidor virtual foi instalado.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Conjunto de resultados

Nenhum.

Observações

A ação start_full é usada para criar um instantâneo completo dos dados em texto integral em @ftcat. A ação start_incremental é usada para reindexar apenas as linhas alteradas na base de dados. A população incremental só pode ser aplicada se a tabela tiver uma coluna com o carimbo temporal do tipo. Se uma tabela no catálogo de texto completo não contiver uma coluna do carimbo temporal do tipo, a tabela sofre uma população completa.

Os dados de catálogo e índice em texto completo são armazenados em ficheiros criados num diretório de catálogo em texto completo. O diretório do catálogo em texto completo é criado como um subdiretório do diretório especificado em @path ou no diretório padrão do catálogo de texto completo do servidor, caso @path não esteja especificado. O nome do diretório do catálogo em texto completo é construído de forma a garantir que é único no servidor. Assim, todos os diretórios de catálogo em texto completo num servidor podem partilhar o mesmo caminho.

Permissions

O interlocutor é obrigado a ser membro da função db_owner . Dependendo da ação solicitada, o chamador não deve ser negado a permissão ALTER ou CONTROL (que db_owner tem) no catálogo de texto completo alvo.

Examples

A. Criar um catálogo em texto completo

Este exemplo cria um catálogo vazio de texto completo, Cat_Desc, na AdventureWorks2025 base de dados.

USE AdventureWorks2022;
GO

EXECUTE sp_fulltext_catalog 'Cat_Desc', 'create';
GO

B. Reconstruir um catálogo de texto completo

Este exemplo reconstrói um catálogo de texto completo existente, Cat_Desc, na AdventureWorks2025 base de dados.

USE AdventureWorks2022;
GO

EXECUTE 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

EXECUTE sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO

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

Este exemplo para a população do Cat_Desc catálogo.

USE AdventureWorks2022;
GO

EXECUTE 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

EXECUTE sp_fulltext_catalog 'Cat_Desc', 'drop';
GO