我正在嘗試使用Contains()方法根據傳遞到存儲過程的TSQL參數來搜索全文索引的查詢。包含需要執行prefix_search,因爲它將用於匹配部分單詞(如策略編號的前5個字符)。TSQL參數化CONTAINS
這是我的查詢。
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
但是當我嘗試運行此,企業管理與錯誤迴應:附近有語法錯誤「+」
在這一點上,我不能確定什麼,我可能不正確地做。
我試圖找到任何與搜索關鍵詞開始。因此,例如,如果搜索字詞是'CNM000',我希望它匹配'CNM00'和'CNM0003245' – 2012-04-20 00:06:07