Обновление поля varbinary (MAX) в SQLServer 2012 Потерянные последние 4 бита

Недавно я хотел бы сделать некоторые исправления данных и попытаться обновить столбец типаVARBINARY (МАКС)значение обновления выглядит следующим образом:

0xFFD8F ... 6DC0676

Однако после успешного выполнения запроса на обновление значение становится следующим:

0x0FFD8 ... 6DC067

Кажется, что последние 4 бита потеряны, или все значение сдвигается вправо на байт ...

Я попытался удалить всю строку и запуститьВставить запросто же самое происходит!

Может кто-нибудь сказать мне, почему это происходит и как я могу решить это? Спасибо!

Я пробовал несколько бинарных файлов различной длины, для максимальной43658 символов (каждый представляет 4 бита, всего около 21 КБ), запрос на обновление выполняется нормально. Еще один символ сделает вышеупомянутую «ошибку» ...

PS1: Для более короткой длины в качестве значения обновления все в порядке

PS2: Я могу опубликовать всю двоичную строку, если это поможет, но она действительно длинная, и я не уверен, подходит ли она здесь

Редакция: Спасибо за любую помощь!

Как кто-то предположил, вставленное значение может быть нечетным числом из 4 битов, поэтому перед ним добавляется 0. Вот моя информация об обновлении значения:

Значение имеет43677 длинные символы, исключая "0x", что в менюДа это странно

Это объясняет, почему «0» вставляется раньше, ноне объясняет, почему исчезает последний символ ...

Затем я делаю эксперимент:

Я вставляючетное значение длины, со мной вручную добавить «0» перед исходным значением,

Теперь значение для обновления

0x0FFD8F ... 6DC0676

который из43678 длинные символы, исключая "0x"

Результат не удача, обновленное значение все еще

0x0FFD8 ... 6DC067

Ответы на вопрос(1)

Ваш ответ на вопрос