ALTER FULLTEXT INDEX (Transact-SQL)

Mis à jour : 12 décembre 2006

Modifie les propriétés d'un index de texte intégral.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

ALTER FULLTEXT INDEX ON table_name
   { ENABLE 
   | DISABLE
   | SET CHANGE_TRACKING { MANUAL | AUTO | OFF }
   | ADD ( column_name 
     [ TYPE COLUMN type_column_name ] 
     [ LANGUAGE language_term ] [,...n] )
     [ WITH NO POPULATION ]
   | DROP ( column_name [,...n] )
     [WITH NO POPULATION ] 
   | START { FULL | INCREMENTAL | UPDATE } POPULATION
   | { STOP | PAUSE | RESUME } POPULATION 
   }

Arguments

  • table_name
    Nom de la table qui contient la ou les colonnes incluses dans l'index de texte intégral. La spécification des noms de la base de données et du propriétaire de la table est facultative.
  • ENABLE | DISABLE
    Indique à Microsoft SQL Server de recueillir ou non des données d'index de texte intégral pour table_name. ENABLE active l'index de texte intégral et DISABLE le désactive.

    Lorsque l'index de texte intégral est désactivé, ses métadonnées restent dans les tables système. Si CHANGE_TRACKING est à l'état activé (mise à jour manuelle ou automatique) quand l'index de texte intégral est désactivé, l'état de l'index est figé, toute analyse en cours est arrêtée et les nouvelles modifications apportées aux données de la table ne sont pas suivies ni propagées dans l'index. L'index de texte intégral de table_name peut être réactivé avec ENABLE.

  • SET CHANGE_TRACKING {MANUAL | AUTO | OFF}
    Spécifie si SQL Server conserve ou non une liste de toutes les modifications apportées aux données indexées dans le catalogue de texte intégral. Les modifications apportées aux données via WRITETEXT et UPDATETEXT ne sont pas répercutées dans l'index de texte intégral et ne sont pas prises en compte par le suivi des modifications.

    Pour modifier l'état CHANGE_TRACKING d'un index de texte intégral, le groupe de fichiers (FILEGROUP) dans lequel se trouve la table indexée de texte intégral ne doit pas être défini à OFFLINE ou à READONLY, sans quoi la commande échoue et SQL Server renvoie une erreur.

  • MANUAL
    Spécifie que le journal de suivi des modifications sera propagé sur une planification à l'aide de l'Agent SQL Server ou manuellement par l'utilisateur.
  • AUTO
    Spécifie que SQL Server met automatiquement à jour l'index de texte intégral chaque fois que des données sont modifiées dans les tables associées. AUTO est la valeur par défaut.
  • OFF
    Spécifie que SQL Server ne conservera pas de liste des modifications apportées aux données indexées.
  • ADD | DROP column_name
    Spécifie les colonnes à ajouter ou à supprimer de l'index de texte intégral. La ou les colonnes doivent être du type char, varchar, nchar, nvarchar, text, ntext, image, xml ou varbinary(max).

    Utilisez la clause DROP uniquement sur les colonnes pour lesquelles l'indexation de texte intégral a été activée.

    Utilisez TYPE COLUMN et LANGUAGE avec la clause ADD pour définir ces propriétés sur column_name. Lorsqu'une colonne est ajoutée, l'index de texte intégral de la table doit être à nouveau rempli pour que les requêtes de texte intégral fonctionnent dans la colonne en question.

    Sauf si WITH NO POPULATION est spécifié, SQL Server démarre automatiquement un remplissage complet après chaque ajout ou suppression d'une colonne d'un index de texte intégral.

  • TYPE COLUMN type_column_name
    Nom de la colonne de table_name contenant le type de document de column_name. Spécifiez type_column_name uniquement si la ou les colonnes de column_name sont de type varbinary(max) ou image

    TYPE COLUMN peut être du type de données char, nchar, varchar ou nvarchar. Pour plus d'informations sur les formats de fichier de texte intégral pris en charge et les données d'indexation stockées dans les colonnes varbinary(max), consultez Filtres de recherche en texte intégral.

  • LANGUAGE language_term
    Langue des données stockées dans column_name.

    language_term est facultatif et peut être défini comme une chaîne, un entier ou une valeur hexadécimale correspondant à l'identificateur de paramètres régionaux (LCID) d'une langue. Si l'argument language_term est spécifié, la langue qu'il représente est appliquée à tous les éléments de la condition de recherche. Si vous ne spécifiez aucune valeur, le système utilise la langue de texte intégral par défaut de l'instance SQL Server.

    Utilisez la procédure stockée sp_configure pour accéder aux informations sur la langue de texte intégral par défaut de l'instance SQL Server. Pour plus d'informations, consultez Option default full-text language.

    Lorsqu'il est spécifié comme chaîne, l'argument language_term correspond à la valeur de la colonne alias dans la table système syslanguages. La chaîne doit être placée entre guillemets simples, comme dans la chaîne 'language_term'. Lorsqu'il est spécifié comme entier, l'argument language_term est alors le LCID actif identifiant la langue. Quand il est spécifié comme valeur hexadécimale, l'argument language_term est 0x suivi de la valeur hexadécimale du LCID. La valeur hexadécimale peut comporter un maximum de huit chiffres, zéros non significatifs inclus.

    Si la valeur est au format DBCS (jeu de caractères codés sur deux octets), SQL Server la convertit en Unicode.

    Les ressources, telles que les séparateurs de mots et les racines de mots, doivent être activées pour la langue spécifiée en tant que language_term. Si ces ressources ne prennent pas en charge la langue spécifiée, SQL Server renvoie une erreur.

    Pour les colonnes de type non-BLOB et non-XML contenant des données texte dans plusieurs langues, ou lorsque la langue du texte stocké dans la colonne est inconnue, utilisez la ressource de langue neutre (0x0). Pour les documents stockés dans des colonnes de type XML ou BLOB, le codage linguistique du document est utilisé lors de l'indexation. Par exemple, dans les colonnes de type XML, l'attribut xml:lang des documents XML identifie la langue. Lors d'une requête, la valeur précédemment spécifiée dans language_term devient la langue par défaut utilisée pour les requêtes de texte intégral, sauf si language_term est spécifié dans le cadre d'une requête de texte intégral.

  • [ ,...n]
    Indique que plusieurs colonnes peuvent être spécifiées pour les clauses ADD ou DROP. Si vous spécifiez plusieurs colonnes, séparez-les par des virgules.
  • WITH NO POPULATION
    Spécifie que l'index de texte intégral ne sera pas rempli après l'opération d'ajout (ADD) ou de suppression (DROP) de colonne. L'index ne sera rempli que si l'utilisateur exécute une commande START...POPULATION.

    Si vous spécifiez WITH NO POPULATION alors que CHANGE_TRACKING est activé, SQL Server renvoie une erreur. Si vous ne spécifiez pas WITH NO POPULATION et que CHANGE_TRACKING est activé, SQL Server effectue un remplissage complet de l'index après sa création.

    Vous pouvez utiliser l'option NO POPULATION seulement si CHANGE_TRACKING est désactivé (OFF). Lorsque vous spécifiez NO POPULATION, SQL Server ne rempli pas l'index après sa création. L'index est rempli uniquement lorsque l'utilisateur lance une commande ALTER FULLTEXT INDEX...START POPULATION. Si vous ne spécifiez pas NO POPULATION, SQL Server rempli l'index après sa création.

  • START {FULL|INCREMENTAL|UPDATE} POPULATION
    Indique à SQL Server de démarrer le remplissage de l'index de texte intégral de table_name. Si un remplissage de l'index de texte intégral est déjà en cours, SQL Server renvoie un avertissement et ne démarre pas un nouveau remplissage.
    • FULL
      Spécifie que chaque ligne de la table est extraite pour l'indexation de texte intégral même si ces lignes ont déjà été indexées.
    • INCREMENTAL
      Spécifie que seules les lignes modifiées depuis le dernier remplissage sont extraites pour l'indexation de texte intégral. INCREMENTAL peut être appliqué seulement si la table contient une colonne de type timestamp. Si une table du catalogue de texte intégral ne contient pas de colonne de type timestamp, elle fait l'objet d'un remplissage complet (FULL).
    • UPDATE
      Spécifie le traitement de toutes les insertions, mises à jour ou suppressions depuis la dernière mise à jour de l'index de suivi des modifications. Le remplissage du suivi des modifications doit être activé sur une table, mais l'index de mise à jour en arrière-plan ou le suivi automatique des modifications doivent être désactivés.
  • {STOP | PAUSE | RESUME } POPULATION
    Arrête ou suspend tout remplissage en cours ; ou arrête ou reprend tout remplissage suspendu.

    STOP POPULATION n'arrête pas le suivi automatique des modifications ni l'index de mise à jour en arrière-plan. Pour arrêter le suivi des modifications, utilisez SET CHANGE_TRACKING OFF.

    Il est possible d'utiliser PAUSE POPULATION et RESUME POPULATION uniquement pour les remplissages complets ; en effet, les autres types de remplissage reprennent les analyses au point où l'analyse a été arrêtée.

Notes

Lorsque des instances de données du type xml sont indexées pour la recherche de texte intégral, les attributs et les noms d'éléments ne sont pas indexés et ne peuvent pas faire l'objet d'une requête. Les valeurs des éléments peuvent toutefois être indexées et faire l'objet d'une requête dans chaque instance. Les fragments et les documents XML correctement formés contenant plusieurs langues sont pris en charge.

Autorisations

L'utilisateur doit soit disposer de l'autorisation ALTER sur la table ou la vue, soit être un membre du rôle de serveur fixe sysadmin ou, au choix, du rôle de base de données fixe db_owner ou db_ddladmin.

Exemple

L'exemple ci-dessous modifie l'index de texte intégral dans la table JobCandidate de la base de données AdventureWorks.

USE AdventureWorks;
GO
ALTER FULLTEXT INDEX ON HumanResources.JobCandidate ENABLE;
GO

Voir aussi

Référence

CREATE FULLTEXT INDEX (Transact-SQL)
DROP FULLTEXT INDEX (Transact-SQL)

Autres ressources

Recherche de texte intégral

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

12 décembre 2006

Nouveau contenu :
  • Ajout des options PAUSE | RESUME POPULATION à la syntaxe.