在VARBINARY(max)
列中展开数据的最佳方法是什么,即将数据设置为大于当前长度的新长度?
-----------------------------------------
| current data | |
-----------------------------------------
^ ^
current length desired new length
根据MSDN,您无法将@Offset
设置为大于数据长度的值,因此... .WRITE (NULL, newOffset, NULL)
不起作用。我能够提出的最佳解决方案是Create a binary string of zeros, with variable length,并将其附加到数据列。不幸的是,这个解决方案会在大型安装中产生服务器端挂起(我还无法分析)。
最好的办法是什么?我错过了一些明显的东西吗?
我需要这个来为VARBINARY(max)
列提供存储接口。此接口的实现(尚未)知道数据长度,所有读/写请求都以1:1的形式转换为SQL服务器查询。
答案 0 :(得分:1)
根据答案数量来判断,除了Create a binary string of zeros, with variable length之外没有办法将其添加到.WRITE
查询中。其他人似乎也这样做:Pre-allocate varbinary(max) without actually sending null data to the SQL Server?。
发布此信息只是为了解决问题。