2010-02-26 52 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

相關問題