Sql 我可以将VARCHAR大小设置为大于8k但小于最大值吗?
从SQL2005开始,VARCHAR(MAX)不再限于8000字节,而是可以使用“溢出”页面将其增加到2GB 但是如果我想把这个列限制在10k字节呢?如果我试图在size参数中输入大于8000的任何内容,似乎会出现错误。这很奇怪,因为MAX与要求2GB限制是一样的。就最大尺寸而言,这似乎是一种“要么全有,要么全无”Sql 我可以将VARCHAR大小设置为大于8k但小于最大值吗?,sql,sql-server,database,sql-server-2005,tsql,Sql,Sql Server,Database,Sql Server 2005,Tsql,从SQL2005开始,VARCHAR(MAX)不再限于8000字节,而是可以使用“溢出”页面将其增加到2GB 但是如果我想把这个列限制在10k字节呢?如果我试图在size参数中输入大于8000的任何内容,似乎会出现错误。这很奇怪,因为MAX与要求2GB限制是一样的。就最大尺寸而言,这似乎是一种“要么全有,要么全无” 有没有办法解决这个问题?没有,你不能[直接]这样做。它是0-8000或最大值 尝试使用10000将给出: The size (10000) given to the type 'va
有没有办法解决这个问题?没有,你不能[直接]这样做。它是0-8000或最大值 尝试使用10000将给出:
The size (10000) given to the type 'varchar' exceeds the maximum allowed for any data type (8000).
但是,您可以将VARCHAR(MAX)列与CHECK containt一起使用。比如:
CHECK (DATALENGTH([myBigColumn]) <= 10000)
CHECK(DATALENGTH([myBigColumn])不,您不能。
您可以选择varchar(),但它要求您实现一个检查约束:
CHECK (DATALENGTH([VarChar10000]) <= 10000)
检查(数据长度([VarChar10000])
CHECK (DATALENGTH([VarChar10000]) <= 10000)