कुछ और स्पष्ट उदाहरण देने के लिए धन्यवाद। जहां तक मैं प्रलेखन और गुगलिंग से बता सकता हूं, एमएसएसक्यूएल 2005 में यूडीएफ या अन्य प्रक्रियात्मक कोड के बिना यह संभव नहीं है। MSSQL 2008 में CONVERT() फ़ंक्शन की शैली पैरामीटर अब बाइनरी डेटा का समर्थन करता है, इसलिए आप इसे सीधे इस तरह कर सकते हैं:
select convert(int, convert(varbinary, '0x89', 1))
पिछले संस्करणों में, आपकी पसंद हैं:
- यूडीएफ का उपयोग करें (टीएसक्यूएल या सीएलआर; सीएलआर वास्तव में इसके लिए आसान हो सकता है)
- चयन को एक संग्रहित प्रक्रिया में लपेटें (लेकिन आपके पास अभी भी यूडीएफ के बराबर होगा)
- इसे एप्लिकेशन फ्रंट एंड में कनवर्ट करें
- MSSQL 2008 में अपग्रेड करें
यदि डेटा को परिवर्तित करना केवल प्रदर्शन उद्देश्यों के लिए है, तो एप्लिकेशन सबसे आसान समाधान हो सकता है:डेटा स्वरूपण आमतौर पर वैसे भी होता है। यदि आपको इसे एक प्रश्न में करना है, तो एक यूडीएफ सबसे आसान है लेकिन प्रदर्शन बहुत अच्छा नहीं हो सकता है (मुझे पता है कि आपने कहा था कि आपने यूडीएफ का उपयोग नहीं करना पसंद किया लेकिन यह स्पष्ट नहीं है कि क्यों)। मेरा अनुमान है कि इसके लिए MSSQL 2008 में अपग्रेड करना शायद यथार्थवादी नहीं है।
अंत में, FYI करें आपके द्वारा शामिल की गई संस्करण संख्या प्रबंधन स्टूडियो का संस्करण है, न कि आपके सर्वर की संस्करण संख्या। इसे प्राप्त करने के लिए, सर्वर से ही पूछें select @@version
या select serverproperty('ProductVersion')
।