/ / Czy -1 oznacza zawsze "max" w tabeli metadanych programu SQL Server? - sql-server, sql-server-2008, znak, metadane, maks. długość

Czy -1 oznacza zawsze "max" w tabeli metadanych programu SQL Server? - sql-server, sql-server-2008, znak, metadane, maks. długość

Podczas uruchamiania tego w SQL Server, widzę -1zdefiniowane w kolumnie CHARACTER_MAXIMUM_LENGTH dla pól / kolumn tabeli z typem danych nvarchar (max). Jeśli długość nie jest zdefiniowana, czy mogę założyć, że zawsze jest ustawiona na -1?

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

wprowadź opis obrazu tutaj

Odpowiedzi:

1 dla odpowiedzi № 1

Według ten wątek, Jeśli to jest char, varchar, nchar, nvarchar to jest 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
...

Według ta strona to wskazuje:

-1 dla danych typu xml i dużej wartości. W przeciwnym razie zwracana jest wartość NULL.

Co jest również obsługiwane przez ta strona