Dodawane jest dodatkowe 0, ponieważ cała wartość, na którą je ustawiasz, jest nieparzysta. SQL Server doda do niego dodatkowe 0, aby wyrównać.
declare @varmax varbinary(max)
set @varmax = 0x1234567 --odd
select @varmax --returns 0x01234567 with the padded 0
set @varmax = 0x12345678 --even
select @varmax --returns 0x12345678
Twoja 9 jest odrzucana, ponieważ wpisujesz nieparzystą liczbę bajtów, która wypełnia maksymalną wartość. Tak więc wstawiane jest 0, ale to przekracza maksymalną liczbę bajtów, a zatem wydaje się również obcinane. Udało mi się odtworzyć twój błąd... ale nie znam jeszcze sposobu.
Oto wartość, której użyłem w twoim teście. Zignoruj wyniki ... ale możesz skopiować je do własnego programu SSMS i zobaczyć prawidłowe dane wyjściowe.