展开VARBINARY(max)列中的数据

时间:2013-05-19 20:48:57

标签: sql-server sql-server-2008 tsql varbinary

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服务器查询。

1 个答案:

答案 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?

发布此信息只是为了解决问题。