0 ekstra ditambahkan karena seluruh nilai yang Anda setel ganjil. SQL Server akan menambahkannya dengan 0 ekstra untuk membuatnya rata.
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 Anda dijatuhkan karena Anda memasukkan jumlah byte ganjil yang mengisi nilai maksimal. Jadi, 0 dimasukkan tetapi ini melebihi jumlah byte maksimum dan dengan demikian juga tampaknya terpotong. Saya bisa meniru kesalahan Anda... tapi belum tahu cara mengatasinya.
Inilah nilai yang saya gunakan untuk pengujian Anda. Abaikan hasilnya... tetapi Anda dapat menyalinnya ke SSMS Anda sendiri dan melihat output yang benar.