我正在尝试使用 Contains() 方法根据传递到存储过程的 TSQL 参数搜索全文索引的查询。Contains 需要进行 prefix_search,因为它将用于匹配部分单词(例如策略编号的前 5 个字符)。
这是我的查询。
CREATE PROCEDURE [SearchMail]
(
@AccountId int,
@SearchTerm VARCHAR(100)
)
AS
SET NOCOUNT ON
BEGIN
SELECT MailId, AccountId, ServerId, ToAddress, FromAddress, DateSent, DateReceived ,
[Subject], Body, PolicyNumber, ProducerNumber, IsRead, IsDeleted, IsImaged,
DateUpdated, DateDeleted, DateImaged, UpdatedBy, DeletedBy, ImagedBy
FROM MailMessages
WHERE AccountId = @AccountId
AND CONTAINS(([Subject], Body, PolicyNumber, ProducerNumber, FromAddress), ' "' + @SearchTerm + '*" ')
AND IsDeleted = 0
AND IsImaged = 0
END
GO
但是当我尝试运行它时,企业管理器会响应错误:“+”附近的语法不正确
在这一点上,我不确定我可能做错了什么。