如何将参数值放在SQL的前缀搜索中

时间:2012-10-22 07:25:35

标签: c# sql

我正在我的ASP.NET应用程序中执行SQL前缀搜索。为此,我编写了一个存储过程,我在其中编写以下查询:

SELECT Description, ProductDescriptionID
FROM Production.ProductDescription
WHERE CONTAINS (Description, ' "top*" ' );

我的程序中有@pvchProductName参数。如何在上面的查询中用参数值替换顶部字?我遇到单引号和双引号的语法问题。

1 个答案:

答案 0 :(得分:4)

DECLARE @searchTerm nvarchar(60) = N' "' + @pvchProductName + N'*" ';
// where the "60" above should be adjusted to account for the length
// of pvchProductName, plus 5. So if pvchProductName is [n]varchar(30),
// then nvarchar(35) would be fine.

SELECT Description, ProductDescriptionID
FROM Production.ProductDescription
WHERE CONTAINS (Description, @searchTerm);

然而,目前还不清楚您希望在过滤条件中包含多少引号/星号/空格 - 您可能需要稍微检查一下。