【问题标题】:CROSS APPLY a FREETEXTTABLE交叉应用 FREETEXTTABLE
【发布时间】:2011-04-11 22:11:27
【问题描述】:

MS SQL Server 2005:table1 有一个全文索引。我想在一个查询中针对它运行多个 freetexttable 搜索,但是我的两次尝试都失败了。任何帮助将不胜感激,谢谢! p.s.如果解决了这个问题,我愿意升级到 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)

【问题讨论】:

  • @user433342 : 你能添加你得到的错误吗?

标签: sql-server-2005 full-text-search freetexttable cross-apply


【解决方案1】:

可能是因为您在第二条语句中缺少别名?

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

这听起来微不足道...但我看不出它应该失败的任何其他原因!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多