SQL: Comme vs Contient - des Résultats Différents

Je suis à court de deux requêtes sur une table.

SELECT MSDS FROM dbo.MSDSSearch3 WHERE CONTAINS(MSDS, 'STYCAST')

Et

SELECT MSDS FROM dbo.MSDSSearch3 WHERE MSDS like '%STYCAST%'

La première requête sera de retour

'STYCAST 50300 LV'

Et la deuxième sera de retour

'STYCAST 50300 LV'
'STYCAST 2851 BLACK'

Personne ne sait pourquoi le comme serait de retour plus de valeurs que le contient? Est-il un problème avec la façon dont je suis en cours d'exécution contient? Merci à l'avance.

Quelle version de SQL Server? Si l'année 2008, vous pouvez obtenir une certaine visibilité dans l'analyseur avec SELECT * FROM sys.dm_fts_parser('"STYCAST 2851 BLACK"', 1033, 0,0) je ne vois aucune raison pour que les cordes ne soient traités différemment.
Intéressante question, êtes-vous sûr que les deux valeurs sont exactement les mêmes? comme dans aucun avant / après les caractères espace. Qui pourrait causer ce problème comme l'CONTIENT correspondre exactement à votre texte alors que l'aimerai correspondre à votre texte + quelque chose de chaque côté
Sonne comme un cas où votre catalogue de texte intégral est hors de date. Vous voudrez peut-être essayer de la reconstruire avec un ALTER FULLTEXT CATALOGUE.
J'ai pensé à cela, et a couru comme un 'STYCAST%", avec le même résultat. Le serveur est en cours d'exécution de Microsoft SQL Server 2008. Je vais continuer à déconner avec elle, et vous permettent de savoir si je vois quelque chose hors de l'ordinaire.
En 2008, vous pouvez également interroger sys.dm_fts_index_keywords pour voir ce qui est indexé.

OriginalL'auteur Corey | 2011-10-07