首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在CONTAINSTABLE函数中使用UDF作为搜索条件

是否可以在CONTAINSTABLE函数中使用UDF作为搜索条件
EN

Stack Overflow用户
提问于 2012-02-22 06:55:25
回答 1查看 273关注 0票数 2

我正在编写一个使用CONTAINSTABLE函数的查询。对于CONTAINSTABLE调用中的第三个参数,我从UDF中获得了搜索词。如果我将这个UDF的输出存储在一个局部变量中,然后将该变量传递给CONTAINSTABLE函数,它会工作得很好:

代码语言:javascript
复制
declare @temp nvarchar(255) = dbo.udf_GenerateTerm()
select *  FROM ContainsTable([TableToSearch], Content, @temp, LANGUAGE 1033)

但是,如果我直接引用UDF作为CONTAINSTABLE参数,我会得到一个语法错误:

代码语言:javascript
复制
select * FROM ContainsTable([TableToSearch], Content, dbo.udf_GenerateTerm(), LANGUAGE 1033)

有没有办法绕过这一点,或者这是SQL Server的一个限制?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-12 10:50:21

这是SQL Server CONTAINSTABLE操作的限制。下面是CONTAINSTABLE的语法。

代码语言:javascript
复制
CONTAINSTABLE ( table , { column_name | ( column_list ) | * } , ' <contains_search_condition> ' 
     [ , LANGUAGE language_term] 
  [ , top_n_by_rank ] 
          ) 

contains_search_condition是我们感兴趣的部分。语法的定义如下

代码语言:javascript
复制
<contains_search_condition> ::= 
    { <simple_term> 
    | <prefix_term> 
    | <generation_term> 
    | <generic_proximity_term> 
    | <custom_proximity_term> 
    |  <weighted_term> 
    } 
    | { ( <contains_search_condition> ) 
    { { AND | & } | { AND NOT | &! } | { OR | | } } 
     <contains_search_condition> [ ...n ] 
    }

simple_termword组成。一个词的定义是

是不带空格或标点符号的字符串。

您可以查看CONTAINSCONTAINSTABLE上的MSDN文档以获取更多信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9386631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档