use*_*342 5 full-text-search sql-server-2005 freetexttable cross-apply
MS SQL Server 2005:table1 有全文索引。我想在单个查询中对其运行多个自由文本表搜索,但是我的两次尝试都失败了。任何帮助将不胜感激,谢谢!ps 如果解决了这个问题,我愿意升级到 sql 2008 :)
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)
Run Code Online (Sandbox Code Playgroud)
也许是因为您缺少第二条语句的别名?
SELECT FT.[key], FT.[rank]
FROM @terms
CROSS APPLY FREETEXTTABLE(table1, *, term) FT
Run Code Online (Sandbox Code Playgroud)
这听起来微不足道......但我看不出它失败的任何其他原因!