/ / ¿-1 siempre significa "max" en la tabla de metadatos de SQL Server? - sql-server, sql-server-2008, carácter, metadatos, maxlength

¿-1 significa siempre "máximo" en la tabla de metadatos de SQL Server? - sql-server, sql-server-2008, character, metadata, maxlength

Cuando ejecuto esto en SQL Server, estoy viendo -1definido en la columna CHARACTER_MAXIMUM_LENGTH para campos / columnas de tabla con un tipo de datos de nvarchar (max). Si la longitud no está definida, ¿puedo asumir que esto siempre se establece en -1?

SELECT COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE,ORDINAL_POSITION
FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE "Ancestor_C%"

enter image description here

Respuestas

1 para la respuesta № 1

De acuerdo a este hilo, si esto es char, varchar, nchar, nvarchar es MAX:

...
CASE WHEN t.NAME IN ("char","varchar","nchar","nvarchar")
THEN CASE WHEN c.max_length = - 1
THEN "MAX"
ELSE CONVERT(VARCHAR(4), CASE WHEN t.NAME IN ("nchar","nvarchar") THEN c.max_length / 2
...

De acuerdo a este sitio esto indica:

-1 para datos de tipo xml y de gran valor. De lo contrario, se devuelve NULL.

Que también es apoyado por este sitio