sp_fulltext_catalog (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Permet de créer ou de supprimer un catalogue de texte intégral, et de démarrer ou d'arrêter l'indexation d'un catalogue. Plusieurs catalogues de texte intégral peuvent être créés pour chaque base de données.

Important

Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez CREATE FULLTEXT CATALOG, ALTER FULLTEXT CATALOG et DROP FULLTEXT CATALOG à la place.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @ftcat = ] N’ftcat'

Nom du catalogue de texte intégral. Les noms de catalogues doivent être uniques dans chaque base de données. @ftcat est sysname, sans valeur par défaut.

[ @action = ] 'action'

Action à effectuer. @action est varchar(20) et peut être l’une de ces valeurs.

Remarque

En fonction de vos besoins, vous pouvez créer, supprimer et modifier des catalogues de texte intégral. Toutefois, il vaut mieux éviter de procéder à des modifications de schéma sur plusieurs catalogues à la fois. Ces actions peuvent être effectuées à l’aide de la sp_fulltext_table procédure stockée, qui est la méthode recommandée.

Valeur Description
create Crée un catalogue de texte intégral vide dans le système de fichiers et ajoute une ligne sysfulltextcatalogs associée au @ftcat et @path, le cas échéant, des valeurs. @ftcat doit être unique dans la base de données.
supprimer Supprime @ftcat en le supprimant du système de fichiers et en supprimant la ligne associée dans sysfulltextcatalogs. Cette action échoue si le catalogue contient des index pour une ou plusieurs tables. sp_fulltext_table '<table_name>', 'drop' doit être exécuté pour supprimer les tables du catalogue.

Une erreur s’affiche si le catalogue n’existe pas.
start_incremental Démarre une population incrémentielle pour @ftcat. Une erreur s’affiche si le catalogue n’existe pas. Si une alimentation d'index de recherche en texte intégral est déjà active, un avertissement est affiché, mais aucune opération d'alimentation ne se produit. Avec la population incrémentielle uniquement modifiée, les lignes sont récupérées pour l’indexation de texte intégral, à condition qu’il existe une colonne d’horodatage présente dans la table indexée en texte intégral.
start_full Démarre une population complète pour @ftcat. Même si elle a déjà été indexée, chaque ligne de chaque table associée à ce catalogue de texte intégral est récupérée lors de l'indexation en texte intégral.
stop Arrête une population d’index pour @ftcat. Une erreur s’affiche si le catalogue n’existe pas. Aucun avertissement n'est affiché si l'alimentation était déjà arrêtée.
regénération Reconstruit @ftcat. Dans ce cas, le catalogue existant est supprimé et un autre catalogue est créé à sa place. Toutes les tables qui comportent des références d'indexation de texte intégral sont associées au nouveau catalogue. La reconstruction redéfinit les métadonnées de texte intégral des tables système de la base de données.

Si le suivi des modifications est DÉSACTIVÉ, la reconstruction n’entraîne pas de repopulation du catalogue de texte intégral nouvellement créé. Dans ce cas, pour remplir à nouveau, exécutez sp_fulltext_catalog avec l’action start_full ou start_incremental .

[ @path = ] N’path'

Répertoire racine (pas le chemin physique complet) d’une action de création . @path est nvarchar(100), avec une valeur par défaut NULL, qui indique l’utilisation de l’emplacement par défaut spécifié lors de l’installation.

Il s’agit du FTData sous-répertoire dans le MSSQL répertoire ; par exemple, C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\FTData. Le répertoire racine spécifié doit résider sur un lecteur sur le même ordinateur, se composer de plus que de la lettre de lecteur et ne peut pas être un chemin relatif. Les lecteurs réseau, les lecteurs amovibles, les disques de floppy et les chemins UNC ne sont pas pris en charge. Les catalogues de texte intégral doivent être créés sur un disque dur local associé à une instance de SQL Server.

@path est valide uniquement lorsque @action est créé. Pour les actions autres que créer (arrêter, reconstruire, et ainsi de suite), @path doit être NULL ou omis.

Si l’instance de SQL Server est un serveur virtuel dans un cluster, le répertoire de catalogue spécifié doit se trouver sur un lecteur de disque partagé sur lequel dépend la ressource SQL Server. Si @path n’est pas spécifié, l’emplacement du répertoire catalogue par défaut se trouve sur le lecteur de disque partagé, dans le répertoire spécifié lors de l’installation du serveur virtuel.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Jeu de résultats

Aucune.

Notes

L’action start_full est utilisée pour créer un instantané complet des données de texte intégral dans @ftcat. L’action start_incremental est utilisée pour réindexer uniquement les lignes modifiées dans la base de données. La population incrémentielle ne peut être appliquée que si la table a une colonne du type timestamp. Si une table du catalogue de texte intégral ne contient pas de colonne du type timestamp, la table subit une population complète.

Les données d'index et de catalogue de texte intégral sont enregistrées dans des fichiers créés dans un répertoire du catalogue de texte intégral. Le répertoire du catalogue de texte intégral est créé en tant que sous-répertoire du répertoire spécifié dans @path ou dans le répertoire de catalogue de texte intégral par défaut du serveur si @path n’est pas spécifié. Le nom du répertoire du catalogue de texte intégral est créé de manière à garantir qu’il est unique sur le serveur. Par conséquent, tous les répertoires de catalogue de texte intégral peuvent partager le même chemin.

autorisations

L’appelant doit être membre du rôle db_owner . Selon l’action demandée, l’appelant ne doit pas être refusé aux autorisations ALTER ou CONTROL (dont db_owner dispose) sur le catalogue de texte intégral cible.

Exemples

R. Création d'un catalogue de texte intégral

Cet exemple crée un catalogue de texte intégral vide, Cat_Descdans la AdventureWorks2022 base de données.

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

B. Reconstruire un catalogue de texte intégral

Cet exemple reconstruit un catalogue de texte intégral existant, Cat_Descdans la AdventureWorks2022 base de données.

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

C. Démarrage de l'alimentation d'un catalogue de texte intégral

Cet exemple commence une population complète du Cat_Desc catalogue.

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

D. Arrêt de l'alimentation d'un catalogue de texte intégral

Cet exemple montre comment arrêter la population du Cat_Desc catalogue.

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

E. Supprimer un catalogue de texte intégral

Cet exemple supprime le Cat_Desc catalogue.

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