【发布时间】:2016-07-25 14:59:28
【问题描述】:
我在一个表上创建了一个全文索引列。
我有一个存储过程,我可以将变量“搜索此文本”的值传递给它。我想在全文栏中搜索“search”、“this”和“text”。要搜索的单词数量是可变的。
我可以使用类似的东西
WHERE column LIKE '%search%' OR column LIST '%this%' OR column LIKE '%text%'
但这需要我使用动态 SQL,而我正试图避免这种情况。
如何使用我的全文搜索来查找每个单词,大概使用 CONTAINS,并且不将整个存储过程转换为动态 SQL?
【问题讨论】:
-
dynamic SQL, which I'm trying to avoid--> 为什么? -
您可能会阅读这篇关于搜索类型查询的文章。 sqlinthewild.co.za/index.php/2009/03/19/catch-all-queries
-
@AaronBertrand - 我们的学长希望我们尽可能避免。
-
对,但是有什么好的理由吗?根据我的经验,动态 SQL 到目前为止是使用可变数量的 where 子句解决查询的最佳方法。我称这些为“the kitchen sink”。
-
@AaronBertrand 我还在学习 SQL。可能是他暂时试图教我“最佳实践”。实际上,我正在学习很多方法来完成某些 SQL 任务,几个月前我认为这些任务只能通过动态 SQL 来完成。
标签: sql-server stored-procedures full-text-search