我正在我的ASP.NET应用程序中执行SQL前缀搜索。为此,我编写了一个存储过程,我在其中编写以下查询:
SELECT Description, ProductDescriptionID
FROM Production.ProductDescription
WHERE CONTAINS (Description, ' "top*" ' );
我的程序中有@pvchProductName
参数。如何在上面的查询中用参数值替换顶部字?我遇到单引号和双引号的语法问题。
答案 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);
然而,目前还不清楚您希望在过滤条件中包含多少引号/星号/空格 - 您可能需要稍微检查一下。