2010-02-26 3 views
5

SQL 2005부터 VARCHAR (MAX)는 더 이상 8000 바이트로 제한되지 않고 "오버플로"페이지를 사용하여 최대 2GB까지 확장 할 수 있습니다.VARCHAR 크기를 8k보다 크지 만 MAX보다 작게 설정할 수 있습니까?

하지만이 열을 10KB로 제한하고 싶다면 어떻게해야합니까? 8000보다 큰 크기 매개 변수를 넣으려고하면 오류가 발생합니다. MAX는 2GB 제한을 요구하는 것과 동일하기 때문에 이상합니다. 최대 크기에 관해서 일종의 "전부 또는 아닌 것"처럼 보입니다.

어쨌든 주위에?

답변

3

아니요,이 작업을 직접 수행 할 수 없습니다. 0-8000 또는 MAX입니다. 10000 줄 것이라고 사용하는

시도 :

The size (10000) given to the type 'varchar' exceeds the maximum allowed for any data type (8000). 

당신은 그러나 체크 contraint와 VARCHAR (MAX) 열을 사용할 수 있습니다. 다음과 같음 :

CHECK (DATALENGTH([myBigColumn]) <= 10000) 
8

아니요. varchar (< = 8000) 또는 varchar (MAX) 중 하나만 입력하십시오.

당신이 생각 할 수 있습니다 :

CREATE TABLE [dbo].[VarChar10000] ([VarChar10000] VARCHAR(MAX)) 
GO 

ALTER TABLE [dbo].[VarChar10000] 
    ADD CONSTRAINT [MaxLength10000] 
    CHECK (DATALENGTH([VarChar10000]) <= 10000) 
GO 

확인 here합니다.

관련 문제