为什么 geography 和 varchar(max) 数据类型的字符最大长度为负长度?

Gue*_*est 3 sql-server

为什么 geography 和 varchar(max) 数据类型的字符最大长度为负长度?

Character_Maximum_length = - 1

Pau*_*ite 5

值 -1 是一个特殊值,表示“当前支持的最大值”。在 SQL Server 的未来版本中,例如maxxmlclr类型的最大长度可能会发生变化。

在像列这样INFORMATION_SCHEMA.COLUMNS的系统视图中,CHARACTER_MAXIMUM_LENGTH已经NULL用于字符长度不适用的类型,例如数字类型。

如果您当前正在使用INFORMATION_SCHEMA视图,则应该阅读本文,然后考虑使用 SQL Server 自己的元数据视图,例如sys.columns

作为旁注,max_length列的基础类型sys.columnssmallint NOT NULL. 它是列的最大长度(以字节为单位,而不是字符),或者 -1 表示前面提到的“最大支持”。