設定している値全体が奇数であるため、余分な 0 が追加されています。 SQL Server は、偶数になるように余分な 0 を埋め込んでいます。
declare @varmax varbinary(max)
set @varmax = 0x1234567 --odd
select @varmax --returns 0x01234567 with the padded 0
set @varmax = 0x12345678 --even
select @varmax --returns 0x12345678
最大値を満たす奇数のバイト数を入力しているため、9 はドロップされています。したがって、0が挿入されますが、これは最大バイト数をオーバーフローするため、切り捨てられているようです。私はあなたのエラーを再現することができました...しかし、それを回避する方法はまだわかりません.
テストに使用した値は次のとおりです。結果は無視してください...ただし、それらを独自の SSMS にコピーして、正しい出力を確認できます。