Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么sql server表中字符的最大长度为NULL和-1?_Sql_Sql Server - Fatal编程技术网

为什么sql server表中字符的最大长度为NULL和-1?

为什么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你到底想干什么?集中你的问题。我想

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)提供存储空间,其中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.