2010-02-26 56 views
5

从SQL 2005开始,VARCHAR(MAX)不再限制为8000字节,而是使用“溢出”页面可以达到2GB。我可以设置大于8k但小于MAX的VARCHAR大小吗?

但是如果我想限制这一列说10k字节呢?如果我尝试将大小参数设置为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). 

但是,您可以使用VARCHAR(MAX)列有CHECK contraint。例如:

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

相关问题