Развернуть данные в столбце VARBINARY(max)

Каков наилучший способ расширить данные в VARBINARY(max) столбец, т. е. чтобы установить новую длину данных больше текущей длины?

-----------------------------------------
| current data      |                   |
-----------------------------------------
                    ^                   ^
                    current length      desired new length

Согласно MSDN, вы не можете установить @Offset до значения, превышающего длину данных, так ... .WRITE (NULL, newOffset, NULL) не работает Лучшее решение, которое мне удалось найти, - это создать двоичную строку нулей переменной длины и добавить ее в столбец данных. К сожалению, это решение вызывает зависание на стороне сервера (которое я пока не смог проанализировать) в большой установке.

Что было бы лучшим способом сделать это? a Я что-то упускаю из виду?

Мне нужно это, чтобы обеспечить интерфейс для хранения VARBINARY(max) колонны. Реализация этого интерфейса (пока) не знает о длине данных, все запросы на чтение / запись транслируются 1:1 в запросы SQL-сервера.

1 ответ

Решение

Судя по количеству ответов, нет другого способа, кроме как создать двоичную строку нулей с переменной длиной и добавить ее в .WRITE запрос. Другие, кажется, делают это аналогично: предварительно выделить varbinary(max) без фактической отправки пустых данных на SQL Server?,

Размещать это просто, чтобы закрыть вопрос.

Другие вопросы по тегам