如何在SQL参数周围放置引号?

时间:2014-10-06 21:45:17

标签: sql sql-server-2012 full-text-search

我正在尝试制作全文搜索存储过程。它将搜索关键字/术语存储在从Web表单传递给它的参数中。

单字搜索工作正常,但是当我搜索诸如" Xbox One"之类的短语时那就失败了。我知道我需要在引号中包含这个短语,因为它的参数化我不知道如何实现它。

以下是我的代码的外观:

    DECLARE @SearchTerm nvarchar(1000)
    SELECT
      ProductName
    FROM
      dbo.Products p1
    WHERE
      CONTAINS((p1.ProductName), @SearchTerm)

我需要放置@SearchTerm这样的参数:N' "@SearchTerm" ',但这显然不能正常工作。

当我使用参数来保存SearchTerm时,如何允许在字符串中包含空格的CONTAINS短语搜索?

1 个答案:

答案 0 :(得分:1)

你有没有尝试过:

DECLARE @SearchTerm nvarchar(1000)
SET @SearchTerm = N'"' + @SearchTerm + N'"'
SELECT
  ProductName
FROM
  dbo.Products p1
WHERE
  CONTAINS((p1.ProductName), @SearchTerm)