4

MS SQL Server 2005:table1具有全文索引。我想在單個查詢中針對它運行多個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 2011-01-29 19:48:02

回答

0

也許是因爲你錯過了第二個語句的別名?

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

這聽起來很平凡......但我沒有看到任何其他原因爲什麼它應該失敗!