sp_fulltext_column (Transact-SQL)

S’applique à :SQL ServerAzure Synapse Analytics

Spécifie si une colonne particulière d'une table est utilisée dans l'indexation de texte intégral.

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 à la place ALTER FULLTEXT INDEX .

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_fulltext_column
    [ @tabname = ] N'tabname'
    , [ @colname = ] N'colname'
    , [ @action = ] 'action'
    [ , [ @language = ] language ]
    [ , [ @type_colname = ] N'type_colname' ]
[ ; ]

Arguments

[ @tabname = ] N’tabname'

Nom d’une table en une ou deux parties. La table doit déjà exister dans la base de données actuelle. La table doit avoir un index de recherche en texte intégral. @tabname est nvarchar(517), sans valeur par défaut.

[ @colname = ] N’colname'

Nom d’une colonne dans @tabname. La colonne doit être un caractère, varbinary(max)ou une image, et ne peut pas être une colonne calculée. @colname est sysname, sans valeur par défaut.

SQL Server peut créer des index de texte intégral stockés dans des colonnes qui sont de type de données varbinary(max) ou image . Les images et les images ne sont pas indexées.

[ @action = ] 'action'

Action à effectuer. @action est varchar(20), sans valeur par défaut et peut être l’une des valeurs suivantes.

Valeur Description
add Ajoute @colname de @tabname à 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.
supprimer Supprime @colname de @tabname de l’index de recherche en texte intégral inactif du tableau.

[ @language = ] langue

Langue des données stockées dans la colonne. @language est int, avec la valeur par défaut NULL. Pour obtenir la liste des langages inclus dans SQL Server, consultez sys.fulltext_languages (Transact-SQL).

Remarque

Utiliser Neutral lorsqu’une colonne contient des données dans plusieurs langues ou dans une langue non prise en charge. La valeur par défaut est spécifiée par l’option de configuration du serveur par défaut en texte intégral.

[ @type_colname = ] N’type_colname'

Nom d’une colonne dans @tabname qui contient le type de document de @colname. Cette colonne doit être char, nchar, varchar ou nvarchar. Il est utilisé uniquement lorsque le type de données de @colname est de type varbinary(max) ou image. @type_colname est sysname, avec la valeur par défaut NULL.

Valeurs des codes de retour

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

Jeu de résultats

Aucune.

Notes

Si l'index de texte intégral est actif, tout remplissage en cours est arrêté. En outre, si une table avec un index de recherche en texte intégral actif est activée, SQL Server garantit que l’index est actif. Par exemple, SQL Server arrête toute population actuelle de la table, supprime l’index existant et démarre une nouvelle population.

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 membre du rôle de base de données fixe db_ddladmin , ou d’un membre du rôle de base de données fixe db_owner ou du propriétaire de la table.

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 AdventureWorks2022;
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.