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