SQL Server 2008 R2 데이터베이스에서 다음 오류가 발생합니다.
전체 텍스트 인덱싱이 아니므로 테이블 또는 인덱싱 된 뷰 'tblArmy' 에서
CONTAINS
또는FREETEXT
조건자를 사용할 수 없습니다 .
SQL Server 2008 R2 데이터베이스에서 다음 오류가 발생합니다.
전체 텍스트 인덱싱이 아니므로 테이블 또는 인덱싱 된 뷰 'tblArmy' 에서
CONTAINS
또는FREETEXT
조건자를 사용할 수 없습니다 .
답변:
전체 텍스트 검색 기능이 설치되어 있는지 확인하십시오.
전체 텍스트 검색 카탈로그를 만듭니다.
use AdventureWorks
create fulltext catalog FullTextCatalog as default
select *
from sys.fulltext_catalogs
전체 텍스트 검색 색인을 만듭니다.
create fulltext index on Production.ProductDescription(Description)
key index PK_ProductDescription_ProductDescriptionID
인덱스를 생성하기 전에 다음을 확인하십시오
.-테이블에 하나의 전체 텍스트 검색 인덱스 만 허용되므로 테이블에 대한 전체 텍스트 검색 인덱스가 없는지 확인하십시오. 테이블
에 고유 인덱스가 있습니다. 인덱스는 NULL을 허용하지 않는 단일 키 열을 기반으로해야합니다.
-전체 텍스트 카탈로그가 있습니다. 기본 전체 텍스트 카탈로그가없는 경우 전체 텍스트 카탈로그 이름을 명시 적으로 지정해야합니다.
SQL Sever Management Studio에서 2 단계와 3 단계를 수행 할 수 있습니다. 개체 탐색기에서 테이블을 마우스 오른쪽 버튼으로 클릭하고 Full-Text index
메뉴 항목을 선택한 다음 Define Full-Text Index...
하위 메뉴 항목을 선택 합니다 . 전체 텍스트 인덱싱 마법사가 프로세스를 안내합니다. 아직없는 경우 전체 텍스트 검색 카탈로그도 생성됩니다.
MSDN 에서 자세한 정보를 찾을 수 있습니다.
에 대한 해결 방법 CONTAINS
: 열에 전체 텍스트 인덱스를 만들고 싶지 않고 성능이 우선 순위 중 하나 LIKE
가 아닌 경우 사전 구성이 필요하지 않은 문을 사용할 수 있습니다 .
예 : 문자 Q가 포함 된 모든 제품 찾기 :
SELECT ID, ProductName
FROM [ProductsDB].[dbo].[Products]
WHERE [ProductsDB].[dbo].[Products].ProductName LIKE '%Q%'
전체 텍스트 인덱싱을 위해 테이블 을 활성화 해야 할 수 있습니다 .
검색하려는 특정 필드에 전체 텍스트 색인을 추가해야합니다.
ALTER TABLE news ADD FULLTEXT(headline, story);
여기서 "news"는 전체 텍스트 검색에 사용할 수없는 테이블 및 "headline, story"필드입니다.
전체 텍스트 열을 true로 설정하는 솔루션이 하나 더 있습니다.
예를 들어 이러한 솔루션은 저에게 효과적이지 않았습니다.
ALTER TABLE news ADD FULLTEXT(headline, story);
내 솔루션.
다음 단계
새롭게 하다
mssql 2014 버전
Select * from table
where CONTAINS([Column], '"A00*"')
%와 동일하게 작동합니다.
where [Column] Like 'A00%'