sp_fulltext_column (Transact-SQL)
Spécifie si une colonne particulière d'une table est utilisée dans l'indexation en texte intégral.
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 ALTER FULLTEXT INDEX.
Syntaxe
sp_fulltext_column [ @tabname= ] 'qualified_table_name' ,
[ @colname= ] 'column_name' ,
[ @action= ] 'action'
[ , [ @language= ] 'language_term' ]
[ , [ @type_colname= ] 'type_column_name' ]
Arguments
[ @tabname=] 'qualified_table_name'
Nom de table en une ou deux parties. La table doit déjà exister dans la base de données actuelle. Cette table doit posséder un index de texte intégral. L'argument qualified_table_name est de type nvarchar(517), sans valeur par défaut.[ @colname= ] 'column_name'
Nom d'une colonne dans qualified_table_name. Elle doit être de type caractère, varbinary(max) ou image et ne pas être calculée. L'argument column_name est de type sysname, sans valeur par défaut.[!REMARQUE]
SQL Server peut créer des index de texte intégral de données texte stockées dans des colonnes de type de données varbinary(max) ou image. Les images et les dessins ne sont pas indexés.
[ @action=] 'action'
Action à exécuter. L'argument action est de type varchar(20), il n'a pas de valeur par défaut et peut prendre l'une des valeurs suivantes.Valeur
Description
add
Ajoute column_name de qualified_table_name à l'index de recherche en texte intégral inactif de la table. Cette action permet d'appliquer à la colonne une indexation de texte intégral.
drop
Supprime la colonne column_name de la table qualified_table_name de l'index de texte intégral inactif de la table.
[ @language= ] 'language_term'
Langue des données stockées dans la colonne. Pour obtenir un récapitulatif des langues incluses dans SQL Server, consultez sys.fulltext_languages (Transact-SQL).[!REMARQUE]
Utilisez l'analyse indépendante lorsqu'une colonne contient des données dans plusieurs langues ou dans une langue non prise en charge. La langue par défaut est spécifiée par l'option de configuration « Default Full-Text Language ».
[ @type_colname = ] 'type_column_name'
Nom d'une colonne de qualified_table_name contenant le type de document de column_name. Cette colonne doit être de type char, nchar, varchar ou nvarchar. Elle est utilisée uniquement lorsque le type de données de column_name est de typevarbinary(max) ou image. type_column_name est de type sysname, sans valeur par défaut.
Valeurs des codes de retour
0 (succès) ou 1 (échec)
Jeux de résultats
Aucun
Notes
Si l'index de texte intégral est actif, tout remplissage en cours est arrêté. De plus, si le suivi des modifications est activé pour une table détenant un index de texte intégral actif, SQL Server garantit la validité de l'index. Par exemple, SQL Server arrête tout remplissage en cours sur la table, supprime l'index existant et démarre un nouveau remplissage.
Si le suivi des modifications est activé et que des colonnes doivent être ajoutées ou supprimées de l'index de texte intégral tout en préservant l'index, la table doit être désactivée puis les colonnes requises doivent être ajoutées ou supprimées. Ces actions gèlent l'index. La table peut être activée ultérieurement lorsque le démarrage d'un remplissage s'avère pratique.
Autorisations
L'utilisateur doit être propriétaire de la table ou membre des rôles de base de données fixe db_ddladmin ou db_owner.
Exemples
L'exemple ci-dessous illustre l'ajout de la colonne DocumentSummary de la table Document à l'index de texte intégral de la table.
USE AdventureWorks;
GO
EXEC sp_fulltext_column 'Production.Document', DocumentSummary, 'add';
GO
L'exemple ci-dessous suppose la création préalable d'un index de texte intégral sur la table nommée spanishTbl. Pour ajouter la colonne spanishCol à l'index de texte intégral, exécutez la procédure stockée suivante :
EXEC sp_fulltext_column 'spanishTbl', 'spanishCol', 'add', 0xC0A;
GO
Lorsque vous exécutez cette requête :
SELECT *
FROM spanishTbl
WHERE CONTAINS(spanishCol, 'formsof(inflectional, trabajar)')
Le jeu de résultats comprend des lignes avec différentes formes de trabajar (travailler), telles que trabajo, trabajamos et trabajan.
[!REMARQUE]
Toutes les colonnes répertoriées dans une même clause de fonction de requête de texte intégral doivent utiliser la même langue.
Voir aussi