4

MS SQL Server 2005: таблица1 имеет полный текстовый индекс. Я хочу запустить несколько freetexttable запросов против него в одном запросе, но две попытки я потерпел неудачу. любая помощь будет оценена, спасибо! постскриптум я готов перейти на sql 2008, если он исправил это :)CROSS APPLY a FREETEXTTABLE

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) 
+1

@ user433342: Можете вы добавить ошибку, которую получаете? – Mulki

ответ

0

Возможно, это потому, что вам не хватает псевдонима во втором заявлении?

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

Это звучит тривиально ... но я не вижу никакой другой причины, почему это должно потерпеть неудачу!