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.

ms189801.note(fr-fr,SQL.90).gifImportant :
La procédure stockée sp_fulltext_catalog sera supprimée dans la prochaine version de SQL Server. Évitez autant que possible d'utiliser cette fonctionnalité dans un nouveau développement et prévoyez de modifier les applications utilisant actuellement cette procédure stockée. Préférez les nouvelles instructions DDL (Data Definition Language) de texte intégral. Pour plus d'informations, consultez les rubriques CREATE, ALTER, DROP FULLTEXT CATALOG.

Icône Lien de rubriqueConventions de la syntaxe de 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.

    ms189801.note(fr-fr,SQL.90).gifRemarque :
    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 un remplissage incrémentiel de fulltext_catalog_name. Une erreur est affichée si le catalogue n'existe pas. Si un remplissage d'index de texte intégral est déjà actif, un avertissement est affiché, mais aucune opération de remplissage ne se produit. Lors d'un remplissage incrémentiel, seules les lignes modifiées sont extraites pour l'indexation de texte intégral, à condition qu'il existe une colonne timestamp dans la table indexée en texte intégral.

    start_full

    Démarre un remplissage complet 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 extraite lors de l'indexation en texte intégral.

    Stop

    Arrête le remplissage 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 le remplissage était déjà arrêté.

    Rebuild

    Reconstruit le catalogue fulltext_catalog_name en supprimant d'abord le catalogue de texte intégral existant du système de fichiers, puis en le recréant et en l'associant à nouveau à toutes les tables contenant des références d'index de texte intégral.

    Cette reconstruction ne modifie aucune métadonnée dans les tables systèmes de la base de données et ne déclenche pas un nouveau remplissage du catalogue de texte intégral nouvellement créé. Pour effectuer un nouveau remplissage, la procédure sp_fulltext_catalog doit être exécutée 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. C'est le sous-répertoire Ftdata du répertoire Mssql, par exemple C:\Program Files\Microsoft SQL Server\MSSQL.1\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)

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. Le remplissage incrémentiel est applicable seulement si la table a une colonne de type timestamp. Si cette colonne n'est pas présente, la table fait l'objet d'un remplissage complet.

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 créé est un sous-répertoire du répertoire spécifié par @path, ou celui du répertoire du serveur par défaut si cet argument 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, tout 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.

Ensembles de résultats

Aucun

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 du remplissage d'un catalogue de texte intégral

L'exemple suivant démarre une opération de remplissage complet du catalogue Cat_Desc.

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

D. Arrêt du remplissage d'un catalogue de texte intégral

L'exemple suivant arrête le remplissage 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

Voir aussi

Référence

FULLTEXTCATALOGPROPERTY (Transact-SQL)
sp_fulltext_database (Transact-SQL)
sp_help_fulltext_catalogs (Transact-SQL)
sp_help_fulltext_catalogs_cursor (Transact-SQL)
Procédures stockées système (Transact-SQL)

Autres ressources

Recherche de texte intégral

Aide et Informations

Assistance sur SQL Server 2005