sp_fulltext_catalog (Transact-SQL)

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 prochaine version de Microsoft 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 plutôt CREATE FULLTEXT CATALOG, ALTER FULLTEXT CATALOG et DROP FULLTEXT CATALOG.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

sp_fulltext_catalog [ @ftcat= ] 'fulltext_catalog_name' , 
     [ @action= ] 'action' 
     [ , [ @path= ] 'root_directory' ] 

Arguments

  • [ @ftcat=] 'fulltext_catalog_name'
    Nom du catalogue de texte intégral. Les noms de catalogues doivent être uniques dans chaque base de données. L'argument fulltext_catalog_name est de type sysname.

  • [ @action=] 'action'
    Action à exécuter. L'argument action est de type varchar(20) et peut prendre l'une des valeurs suivantes.

    [!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. Il est également conseillé de réaliser ces actions à l'aide de la procédure stockée sp_fulltext_table.

    Valeur

    Description

    Create

    Crée un catalogue de texte intégral vide dans le système de fichiers et ajoute une ligne correspondante dans la table sysfulltextcatalogs en y plaçant (si elles existent) les valeurs de fulltext_catalog_name et de root_directory. La valeur de fulltext_catalog_name doit être unique dans la base de données.

    Drop

    Supprime le catalogue fulltext_catalog_name en l'effaçant du système de fichiers et en supprimant la ligne correspondante dans la table sysfulltextcatalogs. Cette action échoue si le catalogue contient des index pour une ou plusieurs tables. L'exécution de sp_fulltext_table 'table_name', 'drop' permet de supprimer les tables du catalogue.

    Une erreur est affichée si le catalogue n'existe pas.

    start_incremental

    Démarre une alimentation incrémentielle de fulltext_catalog_name. Une erreur est affichée 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. Lors d'une alimentation incrémentielle, seules les lignes modifiées sont récupérées pour l'indexation de texte intégral, à condition qu'il existe une colonne timestamp dans la table faisant l'objet d'un index de recherche en texte intégral.

    start_full

    Démarre une alimentation complète du catalogue fulltext_catalog_name. 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 l'alimentation d'index pour le catalogue fulltext_catalog_name. Une erreur est affichée si le catalogue n'existe pas. Aucun avertissement n'est affiché si l'alimentation était déjà arrêtée.

    Rebuild

    Reconstruit le catalogue fulltext_catalog_name. 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é (OFF), la reconstruction ne déclenche pas de réalimentation du catalogue de texte intégral récemment créé. Dans ce cas, pour réeffectuer une alimentation, exécutez sp_fulltext_catalog avec l'action start_full ou start_incremental.

  • [ @path=] 'root_directory'
    Répertoire racine (et pas le chemin physique complet) spécifié pour une action create. L'argument root_directory est de type nvarchar(100) et a la valeur NULL par défaut, qui indique l'utilisation de l'emplacement par défaut spécifié au moment de l'installation. Il s'agit du sous-répertoire Ftdata situé dans le répertoire Mssql ; par exemple, C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FTData. Le répertoire racine spécifié doit se trouver sur un lecteur du même ordinateur, ne pas être désigné seulement par une lettre de lecteur et ne pas être un chemin relatif. Les disques réseau et amovibles, les disquettes et chemins UNC ne sont pas pris en charge. Les catalogues de texte intégral doivent être créés sur un lecteur de disque local associé à une instance de SQL Server.

    L'argument @path est valide uniquement lorsque la valeur du paramètre action est create. Pour les actions autres que create (stop, rebuild, etc.), @path doit prendre la valeur NULL ou être omis.

    Si l'instance de SQL Server est un serveur virtuel de cluster, le répertoire de catalogue spécifié doit être installé sur un lecteur de disque partagé dont la ressource SQL Server dépend. Si l'argument @path n'est pas spécifié, l'emplacement du répertoire de catalogue par défaut se trouve sur le lecteur de disque partagé qui est indiqué lors de l'installation du serveur virtuel.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Jeux de résultats

Aucun

Notes

L'action start_full permet de créer une capture instantanée complète des données de texte intégral du catalogue fulltext_catalog_name. L'action start_incremental permet de réindexer uniquement les lignes qui ont été modifiées dans la base de données. L'alimentation incrémentielle est applicable seulement si la table a une colonne de type timestamp. Si aucune colonne de type timestamp n'est présente dans le catalogue de texte intégral, la table fait l'objet d'une alimentation 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 du 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 telle façon 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. En fonction de l'action demandée, il doit disposer des autorisations ALTER ou CONTROL (détenues par le rôle db_owner) sur le catalogue de texte intégral cible.

Exemples

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

L'exemple suivant montre la création d'un catalogue de texte intégral vide, Cat_Desc, dans la base de données AdventureWorks.

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

B. Reconstruction d'un catalogue de texte intégral

L'exemple suivant montre la reconstruction d'un catalogue de texte intégral existant, Cat_Desc, dans la base de données AdventureWorks.

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

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

L'exemple suivant démarre une opération d'alimentation complète du catalogue Cat_Desc.

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

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

L'exemple suivant arrête l'alimentation du catalogue Cat_Desc.

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

E. Suppression d'un catalogue de texte intégral

L'exemple suivant supprime le catalogue Cat_Desc.

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

Historique des modifications

Mise à jour du contenu

Révision de la description de l'action rebuild.