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