Extra 0 se přidává, protože celá hodnota, na kterou ji nastavujete, je lichá. SQL Server jej vyplní nulou navíc, aby byl vyrovnaný.
declare @varmax varbinary(max)
set @varmax = 0x1234567 --odd
select @varmax --returns 0x01234567 with the padded 0
set @varmax = 0x12345678 --even
select @varmax --returns 0x12345678
Vaše 9 je zrušeno, protože zadáváte lichý počet bajtů, který zaplňuje maximální hodnotu. Takže je vložena 0, ale to přeteče maximální počet bajtů, a tak je také zkráceno, jak se zdá. Podařilo se mi zopakovat vaši chybu... ale zatím nevím, jak ji obejít.
Zde je hodnota, kterou jsem použil pro váš test. Ignorujte výsledky... ale můžete je zkopírovat do vlastního SSMS a zobrazit správný výstup.