1

扩展VARBINARY(max)列中数据的最佳方法是什么,即将数据设置为大于当前长度的新长度?

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

根据MSDN,您不能设置@Offset为大于数据长度的值,因此... .WRITE (NULL, newOffset, NULL)不起作用。我能想出的最佳解决方案是创建一个二进制零字符串,长度可变,并将其附加到数据列。不幸的是,该解决方案在大型安装中会产生服务器端挂起(我还无法分析)。

有什么更好的方法来做到这一点?a 我是否遗漏了一些明显的东西?

我需要它来为VARBINARY(max)列提供存储接口。该接口的实现(还)不知道数据长度,所有读/写请求都被 1:1 转换为 SQL 服务器查询。

4

1 回答 1

1

从答案的数量来看,除了创建一个可变长度的二进制零字符串并将其附加到.WRITE查询中之外,别无他法。其他人似乎也这样做:预先分配 varbinary(max) 而不实际将空数据发送到 SQL Server?.

发布这个只是为了结束这个问题。

于 2013-05-27T08:13:09.697 回答