문제

현재 SQL Server 2000을 백엔드로 실행하는 ASP.NET 웹 사이트 프로젝트를 상속했습니다.

SQL Server 2005 Express를 사용하여 DB의 로컬 사본에서 일부 데이터베이스 변경 사항을 수행했습니다. 사용 테이블을 만듭니다 varchar(max) 열. 그들은 임의의 길이 인 XHTML의 스 니펫을 보관하는 데 사용됩니다.

stackoverflow를 탐색하는 동안 나는 이것을 발견했다.항상 nvarchar (max)를 사용할 수있는 단점이 있습니까?

사용자 Mattruma는 사용에 대한 "어려운 방법"을 발견했다고 말합니다. varchar(max) SQL Server 2000에서.

대신 무엇을 사용해야합니다 varchar(max) 실시간 데이터베이스가 SQL Server 2000에서 실행된다는 점을 감안할 때?

도움을 주셔서 감사합니다!

도움이 되었습니까?

해결책

그것은처럼 들린다 varchar(MAX) Live DB가 SQL Server 2000 인 경우 제한 사항은 지원하지 않습니다. 저장할 8K 이상의 문자가 있다면 유일한 다른 옵션이 남아 있습니다. TEXT 열. 그러나 조심하십시오 TEXT 열에는 많은 제한 사항이 있습니다.

예를 들어, 쉽게 정렬하거나 그룹화 할 수 없으며 다른 열과 동등한 것으로 비교할 수 없습니다. 그것은 당신이 말할 수 없습니다 Select * from mytable where Mytext1 = mytext2.

기타 관련 문제 :

  • 나는 사용하는 것이 좋습니다 NText 또는 NVarchar 유니 코드를 지원하는 방법에 관계없이 열입니다.
  • 테이블에 다른 열이 많고 varchar(8000) 열은 종종 가전적 일 수 있으며, 8k의 행 제한에 문제가있을 수 있습니다. 이것도 명심하십시오.

다른 팁

VARCHAR(Max) SQL Server 2005에서 소개되었으며 SQL Server 2000에서는 작동하지 않습니다. VARCHAR(8000) 그것이 충분히 커질 것이라고 가정합니다. 그렇지 않으면 사용해야합니다 TEXT

편집하다

또한 전환하는 경우 VARCHAR(8000) 단일 행에 8060 바이트를 가질 수 없다는 제한이 있음을 명심하십시오. 그래서 당신이 채우면 a varchar(8000) 테이블과 다른 큰 열이 많이 있으면 오류가 발생합니다. 이것은 어디에 있습니다 Text 들어 온다.

Text 기본적으로 별도의 위치에 저장되며 테이블에 포인터를 보관하기 때문에 성능에 영향을 미칩니다. 이 동작을 변경하여 텍스트 유형이 특정 크기에 도달 할 때까지 테이블에 보관되도록 설정 옵션이 있습니다. 당신이 대부분 작은 덩어리가 있다면 당신은 이것을 활성화하고 싶을 것입니다.

텍스트 열을 사용하십시오.

이것은 당신의 필요에 따라 다릅니다. varchar (max) 대신 텍스트 열을 사용할 수 있지만 텍스트와 ntext 필드의 비교를 좋아할 수 없으므로 해당 필드에서 구현이 검색 할 필요가 없는지 확인해야합니다.

8000 자로 제한 할 수 있다면 Varchar (8000) 열을 사용하여 정보를 저장합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top