为什么CHARACTER_MAXIMUM_LENGTH给出SQL Server表NULL和-1?

问题描述:

SQL:为什么CHARACTER_MAXIMUM_LENGTH给出SQL Server表NULL和-1?

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. 

为什么不能我得到了排名的最大长度(ID,NULL) - 4

值为-1意味着它是一个varchar(最大)或nvarchar(最大)字段。

null值意味着它是一个数字,没有一个长度。

+0

我为什么不能得到排名的最大长度(ID,NULL) - 4 – vm101

+0

什么是你真正想要做什么?集中你的问题。 – pmbAustin

+0

@ vm101这个答案已经回答您的评论 – Lamak

数字是不是字符,所以他们没有character_maximum_length

(max)列不限于数据的〜2GB(2^31-1字节(2 GB)),所以然而,许多是在字符(成本的两倍以每nvarchar()字符的字节VS varchar()字符),被表示通过-1