Ma requête ContainsTable ne fonctionne pas - s'il vous plaît aider :)
-
13-09-2019 - |
Question
J'ai une configuration d'un catalogue de texte intégral. Il a un compte clé unique de 117 avec 19 articles. Le tableau a 19 lignes seulement.
La table comporte un champ appelé ClientGuid NVARCHAR (50). Il est un guid avec un texte étrange à la fin.
par exemple ..
- 8b6ef4a504dd1a57f079180e7f6eb4a0 (-)
- 8b6ef4a504dd1a57f079180e7f6eb4a0 (OK)
(et non, je ne l'ai pas défini que les données de champ de texte - nous l'approvisionnement à partir d'une API 3ème partie
.anways, ceci est mon sql et la requête je lance contre elle. Quand je lance la requête, je reviens ZÉRO résultats: (
ALTER FUNCTION [dbo].[Foo_HiJonSkeet]
(
@ClientGuid NVARCHAR(50)
)
RETURNS TABLE
AS
RETURN
(
SELECT KEY_TBL.[Key] as LogEntryId,
KEY_TBL.RANK as Relevance
FROM CONTAINSTABLE(LogEntries, ClientGuid, @ClientGuid) AS KEY_TBL
)
SELECT * FROM Foo_HiJonSkeet('8b')
Toutes les suggestions? Server est Sql Server 2008.
La solution
Vous pouvez essayer la construction suivante:
SELECT * FROM Foo_HiJonSkeet('"8b*"')
ajouter les guillemets doubles et un astérisque après le terme de recherche d'origine. Il devrait fonctionner.
Mais dans le cas si toutes les recherches seront semblables à l'exemple que vous avez posté ci-dessus, je vous conseille d'utiliser la déclaration de LIKE
au lieu d'utiliser la recherche en texte intégral.