当我将SQL函数Replace
作为参数传递给全文索引函数Contains
时,会发生错误:
SELECT *
FROM dbo.T_PRO_ProductContents
WHERE CONTAINS(REPLACE([Text],'e','b'), 'edara')
错误:
'('。
附近的语法不正确
我该如何解决这个问题?
答案 0 :(得分:1)
你不能。 the grammar中不允许这样做。
CONTAINS (
{
column_name | ( column_list )
| *
| PROPERTY ( { column_name }, 'property_name' )
}
, '<contains_search_condition>'
[ , LANGUAGE language_term ]
)
全文索引建立在Text
列上。
对其应用任意函数意味着索引不可用。
它不会在运行时创建动态匹配表达式的全文索引。
您可以做的最好的事情是创建一个公式为REPLACE([Text],'e','b')
的计算列,然后创建全文索引。