0

我知道我可以使用

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

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

疯狂的猜测:.WRITE (NULL, @offset, 0)- 但是,即使这有效,这是否记录在案?

编辑:请注意,我对选择数据的一部分不感兴趣——我需要设置 BLOB 的长度,以便下一个SELECT将返回截断的数据。

4

2 回答 2

1

经过一番仔细阅读,我在文档中找到了这段话:

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

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

于 2013-02-22T20:48:12.507 回答
0

这在 2008 R2 中对我有用:

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

二进制数据和大数的使用似乎与文档不符。

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

于 2013-02-22T20:41:39.620 回答