Ho una tabella prodotti in un database SQL Server e devo risolvere una procedura memorizzata legacy che utilizza l'indicizzazione full-text. Per i nostri scopi qui, supponiamo che la tabella Prodotti abbia due ID campo, Parole chiave. E il campo Parole viene compilato con il seguente:Problema SQL: l'uso di CONTAINS() non funziona, ma funziona come LIKE
ROLAND SA-300 per il Roland SA-300 è in ottime condizioni!
Quando eseguo la seguente dichiarazione, sono in grado di recuperare il record:
SELECT * FROM Products WHERE Keywords LIKE '%SA-300%'
Tuttavia, quando si esegue una qualsiasi delle seguenti affermazioni ottengo zero risultati:
SELECT * FROM Products WHERE CONTAINS(Keywords, ' SA-300 ')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'SA-300')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"SA-300"')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"*SA-300*"')
Ma so che la funzione CONTAINS() funziona perché ottengo risultati quando eseguo una di queste attività:
SELECT * FROM Products WHERE CONTAINS(Keywords, ' Roland ')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'Roland')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"Roland"')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"*Roland*"')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'Roland')
Ho bisogno di capire perché la funzione CONTAINS() non funziona sul termine 'SA-300'. Sono nuovo agli indici full-text, quindi ogni aiuto è apprezzato.
Nessun indizio, ma hai controllato che l'indice sia aggiornato? – MichaelGG