我有一个在 SQL2005 上运行良好的查询,但是将数据库移动到 SQL2008 给了我标题中的错误。
出现问题的代码是使用空参数调用 CONTAINS、CONTAINSTABLE 或 FREETEXT。但是我试图只在有这样的值时打电话或加入
where (@search_term = '' or (FREETEXT(lst.search_text, @search_term)))
或者
left join containstable (listing_search_text, search_text, @search_term) ftb on l.listing_id = ftb.[key]
and len(@search_term) > 0
但是我找不到任何解决方法可以在 SQL2008 上运行。有任何想法吗?
我知道我可以执行动态 SQL 或使用两种不同情况的 if 语句(使用 FT 连接选择,选择没有 FT 连接。有什么更好的解决方法不需要这样做吗?