0

私は私が使用できることを知っています

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

タイプの列を部分的に更新するイディオムvarbinary(max)。ただし、既存のBLOBの長さを設定する方法(つまり、BLOBを切り捨てる方法)に関するドキュメントが見つかりませんでした。

野蛮な推測:.WRITE (NULL, @offset, 0)-しかし、これが機能したとしても、これは文書化されていますか?

編集:データの一部を選択することに興味がないことに注意してください-次SELECTが切り捨てられたデータを返すように、BLOBの長さを設定する必要があります。

4

2 に答える 2

1

少し注意深く読んだ後、私はドキュメントでこの一節を見つけました:

が、に設定されている場合NULL@Lengthは無視され、の値column_nameは指定されたで切り捨てられます@Offset

野蛮な推測は正しいようです。

于 2013-02-22T20:48:12.507 に答える
0

これは2008R2で私のために働いています:

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

バイナリデータと多数の使用法は、ドキュメントと相性が良いようです。

見つかった場合は、より高速なメソッドを更新します。

于 2013-02-22T20:41:39.620 に答える