Развернуть данные в столбце 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?,
Размещать это просто, чтобы закрыть вопрос.