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%"
Odpowiedzi:
1 dla odpowiedzi № 1Wedł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