이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 11633|회답: 0

[출처] SQL Server에서 텍스트(Text) 데이터 타입과 varchar(max) 데이터 타입은 다릅니다

[링크 복사]
게시됨 2018. 6. 13. 오전 11:07:11 | | |
첫째, varchar(max)는 마이크로소프트가 사용하는 텍스트 데이터 타입의 대체 수단입니다.텍스트와 같은 오래된 필드 유형은 이후 버전에서 취소될 수 있습니다。 그래서 어떤 텍스트를 저장할 수 있는지, varchar(max)는 확실히 저장할 수 있습니다. 사실, 저장할 수 있는 문자 수가 매우 많습니다. 저장할 수 있는 4억 2천만 문자는 접근하기 어렵고, 저는 그것이 접근하기 어려운 부분이라고 생각합니다.

전에야 알았어텍스트와 이미지는 SQL Server에 의해 더 이상 사용되지 않을 수 있는 데이터 타입입니다, 하지만 구체적인 이유는 명확하지 않다. 오늘 읽으면서 텍스트와 varchar(max) 및 nvarchar(max)의 차이를 발견했는데, 주로 연산자의 제한 때문에 텍스트는 다음 함수들만 사용할 수 있다:
기능진술
데이터길이읽기 텍스트
패텍스(PATINDEX)텍스트 크기 집합
서브스트링업데이트 텍스트
텍스트 PTR쓰기 텍스트
텍스트유효


예를 들어, "텍스트" 열의 데이터 타입이 텍스트라면, "="와 "left()"와 같은 연산에는 사용할 수 없습니다. 예를 들어 다음 예시와 같습니다:

테이블을 만들고 데이터를 채우세요:

만약 존재한다면(sysobjects에서 * 선택, 여기서 id = OBJECT_ID('[asdf]') 및 OBJECTPROPERTY(id, 'IsUserTable') = 1)

드롭 테이블 [asdf]

테이블 생성 [asdf] (

[흥미롭음] [내성] 항등성 (1, 1) null이 아님,

[본문] [본문] NULL ,

[varcharmax] varchar(max) NULL)

ALTER 테이블 [ASDF] ADD STATUS [PK_asdf] 기본 키 비클러스터 ([inttest])



IDENTITY_INSERT [asdf] 켜기



삽입 [asdf] ( [ [inttest] , [text] , [varcharmax] ) 값 ( 1 , '1111111', '1111111')



IDENTITY_INSERT [asdf] 꺼지세요

쿼리를 실행하세요:

문의 1:
선택 [텍스트]

      ,[바르차막스]

[testDB]에서. [dbo]. [asdf]

여기서

[텍스트] ='11111' 그리고

[바르차막스] = '1111111'


다음과 같은 오류 메시지가 나타납니다:

Msg 402, 16층, State 1, 1호선

데이터 타입 text와 varchar는 동등한 연산자에서는 호환되지 않습니다.

문의 2:
선택 [텍스트]

      ,[바르차막스]

[testDB]에서. [dbo]. [asdf]

여기서

[바르차막스] = '1111111'


성공적으로 실행될 수 있습니다



MS SQL2005 이상에서는 큰 값의 데이터 타입(varchar(max), nvarchar(max), varbinary(max))를 추가하세요. 큰 값 데이터 타입은 최대 2^30-1바이트의 데이터를 저장할 수 있습니다.

이 데이터 타입은 더 작은 데이터 타입인 varchar, nvarchar, varbinary와 동작적으로 동일합니다.

마이크로소프트의 주장은 이전의 텍스트, ntext, 이미지 데이터 타입을 이 데이터 타입으로 대체하겠다는 것이며, 이들 간의 대응은 다음과 같습니다:

varchar(max)-------text;

nvarchar(max)-----ntext;

Varbinary(Max)----image.



대용량 데이터 유형은 이전보다 훨씬 유연하게 다룰 수 있습니다. 예를 들어, 텍스트는 이전에는 'like' 사용할 수 없지만, varchar(max) 이후에는 이러한 문제가 없습니다. 왜냐하면 varchar(max)는 동작 면에서 varchar(n)와 같기 때문에, varcahr에서 사용할 수 있는 것을 varchar(max)에서도 사용할 수 있기 때문입니다.

또한, 삽입 및 삭제된 테이블에서 큰 값의 데이터 타입 열 참조에 대해 AFTER 트리거 사용을 지원합니다. 글은 좋지 않다. 요약하자면, 큰 값 데이터 타입을 사용한 후 나는 "허리가 더 이상 아프지 않고, 다리도 아프지 않으며, 한 숨 쉬면 6층까지 올라갈 수 있다"고 한다. 무엇을 기다리고 있나요? 큰 값 타입을 사용하세요.






이전의:응, 응, 응
다음:EF(람다 표현식) 쿼리: 데이터에서 만나는 여러 예외
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com