Erreur sur une Requette-Sql

Résolu
fawzi67 Messages postés 6 Date d'inscription samedi 16 août 2008 Statut Membre Dernière intervention 18 janvier 2009 - 23 août 2008 à 23:44
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 24 août 2008 à 13:36
slt, pour tout le monde.
j'ai un probléme lorsque j'execute cette requette.

 SELECT * FROM ARTICLE WHERE contains(libell,' "CHAINE" , "COURROIE" ')

lorsque je fait l'analyse de la requette. c'est OK.
au moment de l'execution de cette le message suisvant apparait.

Serveur : Msg 7601, Niveau 16, État 2, Ligne 1
Impossible d'utiliser les prédicats CONTAINS ou FREETEXT sur table 'ARTICLE' parce qu'il n'y a pas d'index de texte intégral.

je sait pas se que je doit faire.

merci pour votre Aide.

4 réponses

fawzi67 Messages postés 6 Date d'inscription samedi 16 août 2008 Statut Membre Dernière intervention 18 janvier 2009
23 août 2008 à 23:48
slt, pour tout le monde.
j'ai un probléme lorsque j'execute cette requette.

 SELECT * FROM ARTICLE WHERE contains(libell,' "CHAINE" , "COURROIE" ')

lorsque je fait l'analyse de la requette. c'est OK.
au moment de l'execution de la requette, le message suivant apparait.
sachant que je doit faire un filtre sur un champ <LIBELL> quit peut contenir la valeur <CHAINE>  et ou  <COURROIE>

Serveur : Msg 7601, Niveau 16, État 2, Ligne 1
Impossible d'utiliser les prédicats CONTAINS ou FREETEXT sur table 'ARTICLE' parce qu'il n'y a pas d'index de texte intégral.

je sait pas se que je doit faire.
s'il ya autres solutions veuillez me préciser comment faire.

merci pour votre Aide.
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
24 août 2008 à 10:19
Le message est clair :
 Pour etre utiliser, l'instruction CONTAINS nécessite qu'au préalable (à la creation de la table généralement), un index ait été créé sur les champs voulus

Cet index n'existe pas dans ta base de donnée, tu ne peux donc pas utiliser CONTAINS

Essaye peut-etre avec ceci :
SELECT * FROM ARTICLE WHERE (libell LIKE "%CHAINE%") OR (libell LIKE "%COURROIE%")

JE t'invite à lire cet article sur les index paru récemment, ce qu'on peut en attendre, ce qu'ils appportent, mais aussi ce qu'ils n'apportent pas. On peut voir que dans certains cas ou on pourrait penser que les index apportent quelque chose, il n'en est rien
--> http://sqlpro.developpez.com/cours/quoi-indexer/
---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
24 août 2008 à 00:23
SELECT * FROM ARTICLE WHERE libell   contains "CHAINE" or "COURROIE"   suis pas sur mais ça me semble plus logique de mettre libel avant contains

Bonjour chez vous !
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
24 août 2008 à 13:36
Après vérification dans l'aide, ce n'est pas un simple index qui doit etre créer mais un index particulier appelé Index de texte intégral

Je t'invite à consulter l'aide MSDN pour plus de précision, la commande à utiliser étant CREATE FULLTEXT INDEX

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Rejoignez-nous