Volltextsuche über Prozedur-Parameter

07/01/2009 - 10:41 von Matthias Schuppe | Report spam
Hallo zusammen,

ich habe da so ein kleines Verstàndnisproblem bei der Volltextsuche.

Es geht um diese Prozedur:

CREATE PROCEDURE dbo.Volltextsuche
@Suche nvarchar(200)
AS
BEGIN
SELECT Felder
FROM Tabelle
WHERE (CONTAINS(Suchfeld, @Suche))
END

Der Parameter "@Suche" wird im Client über ein Editierfeld gefüllt.
Wenn der User hier ein Wort eingibt, z.B. "Test", erscheinen
erwartungsgemàß alle Datensàtze, bei denen das Suchfeld das Wort
"Test" enthàlt.

Wenn der User mehrere Wörter eingibt - durch Leerzeichen getrennt -
hàtte ich eigentlich gerne alle Datensàtze, die eines dieser Wörter
enthalten. Es erscheint aber ein Syntaxfehler. Was mache ich falsch?

Gruß,

Matthias
 

Lesen sie die antworten

#1 Christoph Muthmann
07/01/2009 - 11:11 | Warnen spam
Matthias Schuppe wrote:
Hallo zusammen,

ich habe da so ein kleines Verstàndnisproblem bei der Volltextsuche.

Es geht um diese Prozedur:

CREATE PROCEDURE dbo.Volltextsuche
@Suche nvarchar(200)
AS
BEGIN
SELECT Felder
FROM Tabelle
WHERE (CONTAINS(Suchfeld, @Suche))
END

Der Parameter "@Suche" wird im Client über ein Editierfeld gefüllt.
Wenn der User hier ein Wort eingibt, z.B. "Test", erscheinen
erwartungsgemàß alle Datensàtze, bei denen das Suchfeld das Wort
"Test" enthàlt.

Wenn der User mehrere Wörter eingibt - durch Leerzeichen getrennt -
hàtte ich eigentlich gerne alle Datensàtze, die eines dieser Wörter
enthalten. Es erscheint aber ein Syntaxfehler. Was mache ich falsch?




Hallo Matthias,
schau Dir mal die ersten beiden Beispiele aus der Online-Doku an. Bei
mehreren Wörtern, sind diese in doppelte Hochkommata gepackt.

where contains(Suchfeld, 'Gebrüder')

where contains(Suchfeld, '"Gebrüder Meyerbier"')

where contains(Suchfeld, '"Gebrüder" OR "Meyerbier"')


Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org

Ähnliche fragen