Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

अद्यतन varbinary(MAX) कॉलम

अतिरिक्त 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 में कॉपी कर सकते हैं और सही आउटपुट देख सकते हैं।

http://rextester.com/LMGQ8686




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑपरेशन के बराबर में SQL_AltDiction_CP850_CI_AS और SQL_Latin1_General_CP1_CI_AS के बीच टकराव को हल नहीं कर सकता

  2. SQL सर्वर ट्रिगर डिलीट या कैस्केड डिलीट

  3. SQL सर्वर में कनेक्शन के लिए संयोजन कैसे सेट करें?

  4. क्या कोई तालिका है जिसमें sysobjects.xtype विवरणों की सूची है?

  5. SQL सर्वर - संग्रहीत प्रक्रियाओं को एक डीबी से दूसरे में कॉपी करें