Присвоение пустого двоичного значения столбцу varbinary (MAX) создает столбец длиной 8000 байт - PullRequest
3 голосов
/ 16 февраля 2011

У меня есть таблица со столбцом varbinary (max), я пытаюсь присвоить этому столбцу двоичный буфер нулевой длины, но вместо того, чтобы получить значение нулевой длины в таблице, я получаю 8000 байт значение заполнено нулями:
8000 long zero buffer
* столбец dataSize в показанном запросе был добавлен с использованием DATALENGHT (data) («SELECT _index, dataSize = DATALENGHT (data) , data FROM ....») и показывает фактический размер в таблице значение

Откуда берется пустой буфер длиной 8000 байт? это какое-то поведение по умолчанию?

1 Ответ

0 голосов
/ 16 февраля 2011

Если исходный столбец является двоичным (8000), то DATALENGTH(data) вернет 8000 (он заполнен полностью), и данные будут содержать полные 8000 байтов.1005 *

Это не может быть двоичный (8000) столбец - поскольку столбец с фиксированным размером сообщит одинаковую длину данных для всех строк.Вероятно, некоторые данные были скопированы туда из переменной BINARY(8000) или другими способами, когда-то в прошлом.

...