none
Variable in einer Prozedur RRS feed

  • Frage

  • Hallo,

    ich versuche gerade krampfhaft in einer Prozdur einen Parameter zu übergeben, es wird auch keine Fehlermeldung gebracht sondern einfach nichts gefunden.


    ALTER PROCEDURE [dbo].[Function_GetSearch]
     -- Add the parameters for the stored procedure here
     @SearchWord nvarchar(100)
    AS
    BEGIN
     -- SET NOCOUNT ON added to prevent extra result sets from
     -- interfering with SELECT statements.
     SET NOCOUNT ON;

        -- Insert statements for procedure here
     SELECT TOP 750...
     AND CONTAINS(Matchcode, ' FORMSOF (THESAURUS, @SearchWord ) ');
    END


    wenn ich jedoch den Suchstring direkt eingebe, wird auch was gefunden:
    AND CONTAINS(Matchcode, ' FORMSOF (THESAURUS, "alu-felge" ) ');

    kann mir jemand verraten wie hier das "@Searchword" die übergeben Werte übernimmt?

    Gruß Bert

    Donnerstag, 11. August 2011 08:15

Antworten

  • Siehe CONTAINS, Beispiel f). Du musst einen entsprechenden String erzeugen, d.h. es sollte so funktionieren:

    DECLARE @Word VARCHAR(MAX) = 'word' ;
    DECLARE @Search VARCHAR(MAX) = ' FORMSOF (THESAURUS, ' + @Word + ' ) ' ;
    
    SELECT TOP 750
            *
    FROM    test
    WHERE   1 = 1
            AND CONTAINS ( Matchcode, @Search ) ;

    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    • Als Antwort markiert Bertram Maurer Donnerstag, 11. August 2011 08:35
    Donnerstag, 11. August 2011 08:25
    Moderator

Alle Antworten

  • Du musst alles in eine Variable packen und dann übergeben.
    [sql]
    AND CONTAINS(Matchcode, @KompletteBedingung);
    [/sql]
     Schau mal, ob Dir das hier hilft:
     Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu
     
     
    Donnerstag, 11. August 2011 08:24
  • Siehe CONTAINS, Beispiel f). Du musst einen entsprechenden String erzeugen, d.h. es sollte so funktionieren:

    DECLARE @Word VARCHAR(MAX) = 'word' ;
    DECLARE @Search VARCHAR(MAX) = ' FORMSOF (THESAURUS, ' + @Word + ' ) ' ;
    
    SELECT TOP 750
            *
    FROM    test
    WHERE   1 = 1
            AND CONTAINS ( Matchcode, @Search ) ;

    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    • Als Antwort markiert Bertram Maurer Donnerstag, 11. August 2011 08:35
    Donnerstag, 11. August 2011 08:25
    Moderator