2013-02-22 64 views
0

我知道我可以使用截断VARBINARY(max)列到指定长度

UPDATE table SET column = .WRITE (expression, @offset, @length) 

idiom以部分地更新varbinary(max)类型的列。但是,我找不到有关如何设置现有BLOB长度的文档(即如何截断它)。

狂猜:.WRITE (NULL, @offset, 0) - 但是,即使这个工程,这是记录?

编辑:请注意,我没有兴趣在选择数据的一部分 - 我需要设置BLOB的长度使下SELECT会返回截断的数据。

回答

1

有点仔细阅读后,我发现这个通道在docs

如果表达设置为NULL@Length被忽略,并且在column_name值在指定@Offset被截断。

疯狂的猜测似乎是正确的。

0

这是为我工作在2008 R2:

update MyTable set MyColumn = cast(left(MyColumn, 100000000) as varbinary(max)) 

二进制数据和大量的使用似乎与documentation到JIVE。

我会更新更快的方法,如果我找到它们。