web-dev-qa-db-fra.com

Contient une fonction dans MS SQL 2008 R2

J'essaie la requête SQL suivante:

SELECT FirstName, SecondName FROM Persons WHERE CONTAINS(FirstName, 'Mat')

et j'ai eu cette erreur:

Impossible d'utiliser une contient ou un prédicat FreeText sur la table ou la vue indexée 'Personne' car il n'est pas indexé du texte intégral.

Est-ce que je dois indexer la colonne FirstName? Qu'est-ce qui ne va pas ?

5
Philippe Lavoie

Si vous souhaitez utiliser la contient ou FreeText, vous devez créer un catalogue de texte complet et créer un index de texte complet sur la colonne. Cependant, vous pouvez utiliser la déclaration similaire pour valider si une colonne "contient" une chaîne spécifique.

SELECT FirstName, SecondName FROM Persons WHERE FirstName LIKE '%Mat%'

Vous devez être conscient que similaire est plus lent que la contient mais nécessite moins de configuration. Si vous souhaitez utiliser le catalogue de texte complet, vous pouvez utiliser ceci link .

J'espère que cela vous aidera.

10
Nico