4

MS SQL Server 2005:table1にはフルテキストインデックスがあります。1回のクエリで複数のフリーテキストテーブル検索を実行したいのですが、2回の試行が失敗しました。助けていただければ幸いです、ありがとう!これが修正されれば、psはsql2008にアップグレードする用意があります:)

CREATE FUNCTION fnt_FullTextSearch ( @s NVARCHAR(4000) )
RETURNS TABLE
AS
  RETURN
    ( SELECT [key], [rank]
        FROM FREETEXTTABLE(table1, *, @s) )

DECLARE @terms TABLE ( term VARCHAR(MAX) )
INSERT INTO @terms VALUES ( 'flu' )
INSERT INTO @terms VALUES ( 'acid' )

-- The inline function "..." cannot 
-- take correlated parameters or subqueries 
-- because it uses a full-text operator.
SELECT ft.[key], ft.[rank]
    FROM @terms 
        CROSS APPLY fnt_FullTextSearch(term) ft

--syntax error on term
SELECT ft.[key], ft.[rank]
    FROM @terms 
        CROSS APPLY FREETEXTTABLE(table1, *, term)
4

1 に答える 1

0

2 番目のステートメントにエイリアスがないためでしょうか。

SELECT FT.[key], FT.[rank]
    FROM @terms 
        CROSS APPLY FREETEXTTABLE(table1, *, term) FT

些細なことのように聞こえます...しかし、それが失敗する理由は他にありません!

于 2011-01-29T19:50:42.260 に答える