2013-03-07 3 views
0

방금 ​​시도한이 유용한 메시지가 있습니다.SQL Server에서 문자열 열의 비 클러스터형 인덱스는 어떻게 만듭니 까?

'사용자'테이블의 '사용자'는 인덱스의 키 열로 사용할 수없는 유형 인 입니다.

사용자 이름은 nvarchar (max) 열입니다.

+3

nvarchar (max)는 제약 조건/인덱스로 사용할 수 없습니다. 이 비슷한 질문을보십시오 : http://stackoverflow.com/questions/1184490/why-cant-i-put-a-constraint-on-nvarcharmax – squillman

+2

왜 nvarchar (max)'에 색인을 원합니까? 기둥? 왜 사용자 이름에'nvarchar (max)'를 사용하고 있습니까? 누군가 당신의 사용자 이름에 10 억자를 원한다고 생각합니까? 아마도'nvarchar (50), (64) 또는 (255)'로 충분할 것입니다. '(320)'이 전자 메일 주소를 나타내는 경우. 그리고 유니 코드가 실제로 여기에 필요한 것인지 궁금합니다. –

+0

LOL도 여러 언어로 10 억 자입니다. –

답변

2

nvarchar (max) 또는 varchar (max) 열에 인덱스를 추가 할 수는 없지만 인덱스의 일부가 될 수 있습니다.

색인에 포함시킬 수는 있지만 색인을 오프라인으로 작성/재 작성해야합니다.

'사용자 이름'열 이름에서 추측 한대로 열 형식을 nvarchar (50)처럼 작게 변경했습니다. nvarchar (max) 데이터 유형은 최대 4GB의 텍스트를 저장할 수 있으며 전체 텍스트 저장에 사용됩니다 (전체 텍스트 검색을 설정하는 데 사용).

+1

또한 색인을 거대하고 유지하기 어렵게 만듭니다. –