전체 텍스트 인덱싱이 아니므로 테이블 또는 인덱싱 된 뷰에서 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%'
시간 이 걸리는 Full-Text-Index
쿼리를 사용해야하는 데이터베이스의 모든 테이블에서 정의해야합니다 CONTAINS
.
대신 LIKE
테이블에 대한 설정을 조정할 필요없이 즉시 결과를 제공 하는 을 사용할 수 있습니다 .
예:
SELECT * FROM ChartOfAccounts WHERE AccountName LIKE '%Tax%'
에서 얻은 동일한 결과를에서 얻을 CONTAINS
수 있습니다 LIKE
.
전체 텍스트 인덱싱을 위해 테이블 을 활성화 해야 할 수도 있습니다 .
검색하려는 특정 필드에 전체 텍스트 색인을 추가해야합니다.
ALTER TABLE news ADD FULLTEXT(headline, story);
여기서 "news"는 전체 텍스트 검색에 사용할 수없는 테이블 및 "headline, story"필드입니다.
전체 텍스트 열을 true로 설정하는 솔루션이 하나 더 있습니다.
예를 들어 이러한 솔루션은 저에게 효과적이지 않았습니다.
ALTER TABLE news ADD FULLTEXT(headline, story);
내 솔루션.
- 테이블을 마우스 오른쪽 버튼으로 클릭
- 디자인
- 편집하려는 열을 마우스 오른쪽 버튼으로 클릭하십시오.
- 전체 텍스트 색인
- 더하다
- 닫기
- 새롭게 하다
다음 단계
- 테이블을 마우스 오른쪽 버튼으로 클릭
- 디자인
- 편집하려는 열을 클릭하십시오.
- mssql 하단에 "열 속성"탭이 있습니다.
- 전체 텍스트 사양-> (전체 텍스트 인덱싱 됨)이 true로 설정되었습니다.
새롭게 하다
mssql 2014 버전
Select * from table
where CONTAINS([Column], '"A00*"')
%와 동일하게 작동합니다.
where [Column] Like 'A00%'
'programing' 카테고리의 다른 글
오류 CS0433 "A.dll과 B.dll에 이미 'X'유형이 있습니다."라는 오류는 어디에서 발생합니까? (0) | 2020.10.18 |
---|---|
컨텍스트 루트 이름을 포함하지 않고 상대 경로를 사용하는 방법은 무엇입니까? (0) | 2020.10.18 |
자바 스크립트 줄 바꿈 분할 방법 (0) | 2020.10.18 |
JQuery-값에 따라 드롭 다운 항목을 선택하는 방법 (0) | 2020.10.18 |
vim에서 현재 파일을 어떻게 삭제할 수 있습니까? (0) | 2020.10.18 |