अतिरिक्त 0 जोड़ा जा रहा है क्योंकि आप इसे जिस संपूर्ण मान पर सेट कर रहे हैं वह विषम है। SQL सर्वर इसे समान बनाने के लिए अतिरिक्त 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 में कॉपी कर सकते हैं और सही आउटपुट देख सकते हैं।