sp_fulltext_catalog (Transact-SQL)
Cria e descarta um catálogo de texto completo e inicia e interrompe a ação de indexação para 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 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 CATALOG, ALTER FULLTEXT CATALOG e DROP FULLTEXT CATALOG. |
Sintaxe
sp_fulltext_catalog [ @ftcat= ] 'fulltext_catalog_name' ,
[ @action= ] 'action'
[ , [ @path= ] 'root_directory' ]
Argumentos
[ @ftcat=] 'fulltext_catalog_name'
É o nome do catálogo de texto completo. Os nomes de catálogo devem ser exclusivos para cada banco de dados. fulltext_catalog_name é sysname.[ @action=] 'action'
É a ação a ser executada. action é varchar(20), e pode ser um destes 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 procedimento armazenado sp_fulltext_table, que é o modo recomendado.
Valor
Descrição
Create
Cria um novo catálogo de texto completo, vazio, no sistema de arquivos e adiciona uma linha associada em sysfulltextcatalogs com os valores fulltext_catalog_name e root_directory, se presentes. fulltext_catalog_name deve ser exclusivo no banco de dados.
Drop
Descarta fulltext_catalog_name removendo-o do sistema de arquivos e excluindo a linha associada em sysfulltextcatalogs. Essa ação falhará se esse catálogo contiver índices para uma ou mais tabelas. sp_fulltext_table 'table_name', 'drop' deve ser executado para descartar as tabelas do catálogo.
Um erro será exibido se o catálogo não existir.
start_incremental
Inicia uma população incremental para fulltext_catalog_name. 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 a indexação de texto completo, contanto que exista uma coluna timestamp presente na tabela que está sendo indexada por texto completo.
start_full
Inicia uma população completa para fulltext_catalog_name. 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 fulltext_catalog_name. Um erro será exibido se o catálogo não existir. Nenhum aviso será exibido se a população já estiver parada.
Rebuild
Recria fulltext_catalog_name. 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 definido como OFF, a recriação não fará com que ocorra um novo preenchimento 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=] 'root_directory'
É o diretório raiz (não o caminho físico completo) de uma ação create . root_directory é nvarchar(100) e tem um valor padrão NULL, que indica o uso do local padrão especificado na configuração. Ele é o subdiretório Ftdata no diretório Mssql; por exemplo, C:\Program Files\Microsoft SQL Server\ MSSQL10_50.MSSQLSERVER \MSSQL\FTData. O diretório raiz especificado deve residir em uma unidade no mesmo computador, deve consistir em mais informações além da letra da unidade e não pode ser um caminho relativo. Unidades de rede, unidades removíveis, discos flexíveis e caminhos UNC não têm suporte. 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 é create. Para ações diferentes de create (stop, rebuild etc.), @path deve ser NULL ou omitido.
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 seja dependente. Se @path não for especificado, o local do diretório de catálogo padrão será a unidade de disco compartilhada, no diretório especificado quando o servidor virtual foi instalado.
Valores de código de retorno
0 (êxito) ou 1 (falha)
Conjuntos de resultados
Nenhum
Comentários
A ação start_full é usada para criar um instantâneo completo dos dados de texto completo em fulltext_catalog_name. A ação start_incremental é usada para reindexar somente 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 tiver uma coluna do tipo timestamp, a tabela será totalmente preenchida.
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. Esse diretório será criado como um subdiretório do diretório especificado em @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 será 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 precisa ser membro da função db_owner. Dependendo da ação solicitada, não devem ser negadas ao chamador as permissões ALTER ou CONTROL (que db_owner possui) no catálogo de texto completo de destino.
Exemplos
A. Criar um catálogo de texto completo
Este exemplo cria um catálogo de texto completo vazio, Cat_Desc, no banco de dados AdventureWorks2008R2.
USE AdventureWorks2008R2;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'create';
GO
B. Para recriar um catálogo de texto completo
Este exemplo recria um catálogo de texto completo existente, Cat_Desc, no banco de dados AdventureWorks2008R2.
USE AdventureWorks2008R2;
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álogo Cat_Desc.
USE AdventureWorks2008R2;
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 a população do catálogo Cat_Desc.
USE AdventureWorks2008R2;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'stop';
GO
E. Para remover um catálogo de texto completo
Este exemplo remove o catálogo Cat_Desc.
USE AdventureWorks2008R2;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'drop';
GO