4

SQL Server 2008 で全文検索を使用してデータを検索すると問題が発生します。

空白のないデータを検索すると機能しますが、空白のあるデータを入力するとエラーが発生します。

検索'amit'した場合と同様に機能しますが、データがある'amit is working'場合はエラーが発生します。

SQL Server 2008 で ASP.NET MVC 4.0 を使用しています。

ありがとうアミット。

Create PROC [usp_Feedback_Search]
@Word nvarchar(500) ,   
@CompanyId UNIQUEIDENTIFIER     

As
IF ISNULL(@Word,'') = ''
 BEGIN
 Select          
  [Id] ,
[Content] ,    
[UserId],    
 [VoteCount] ,
 [IsOpen],
 [Deleted],
 [RowVersion],    
 [CreatedBy],     
 [CreatedOn],    
 [UpdatedOn],    
 [UpdatedBy],       
 [CompanyId], 
 [DisplayId],
  [Status]
 FROM Feedback         
  WHERE CompanyId=@CompanyId
  END
 ELSE
  BEGIN   

DECLARE @formatedWord varchar(500)='"'+@word+'\+"'

  Select          
  [Id] ,
[Content] ,    
[UserId],    
 [VoteCount],
 [IsOpen],
 [Deleted],
 [RowVersion],    
 [CreatedBy],     
 [CreatedOn],    
 [UpdatedOn],    
 [UpdatedBy],       
 [CompanyId], 
 [DisplayId],
  [Status]    
  FROM Feedback            
  Where CONTAINS(*,@Word)     
  and CompanyId=@CompanyId
  END
 GO
4

2 に答える 2

23

アミットさんの答えは、アミットならではのものかもしれないと思います。他のみんなのために...

値を二重引用符で囲みます。

SELECT ... WHERE Contains(tablename.columnname, '"amit is working"')

への答えです

SQL Server 2008 で全文検索を使用してデータを検索すると問題が発生します。

空白のないデータを検索すると機能しますが、空白のあるデータを入力するとエラーが発生します。

「amit」を検索すると機能しますが、データが「amit is working」の場合、エラーが発生します。

于 2013-03-08T21:02:44.360 に答える