为什么sql server表中字符的最大长度为NULL和-1?
sql:为什么sql server表中字符的最大长度为NULL和-1?,sql,sql-server,Sql,Sql Server,sql: 为什么我不能获取秩(id,null)-4的最大长度?值-1表示它是一个varchar(max)或nvarchar(max)字段 空值表示它是一个没有长度的数字。数字不是字符,因此它们没有字符\u最大长度 (最大值)列的数据限制为~2gb(2^31-1字节(2gb)),因此无论多少个字符(每个nvarchar()character比varchar()characters的成本是字节的两倍),都由-1表示,为什么我不能获得秩(id,null)的最大长度-4你到底想干什么?集中你的问题。我想
为什么我不能获取秩(id,null)-4的最大长度?值-1表示它是一个varchar(max)或nvarchar(max)字段
空值表示它是一个没有长度的数字。数字不是字符,因此它们没有
字符\u最大长度
(最大值)
列的数据限制为~2gb(2^31-1字节(2gb)),因此无论多少个字符(每个nvarchar()
character比varchar()
characters的成本是字节的两倍),都由-1
表示,为什么我不能获得秩(id,null)的最大长度-4你到底想干什么?集中你的问题。我想要为字段秩(id,null)提供存储空间,其中id为int,所以我想要获得存储空间-4字节@LamakI仍然不明白你在问什么,对不起。varchar(max)的存储是字符串的长度(以字节为单位)加上至少四个字节的长度。nvarchar(max)字段的存储空间是字符串长度(字节)的两倍,加上长度至少四个字节。还有额外的对齐开销和分页内容,具体取决于您试图计算的内容。
SELECT * FROM INFORMATION_SCHEMA.COLUMNS for columns like rank(id,null) CHARACTER_MAXIMUM_LENGTH is NULL and for the column id(varchar(max),null) CHARACTER_MAXIMUM_LENGTH is -1.