2009-01-14 6 views
73

मुझे SQL सर्वर डेटाबेस में बाइनरी फ़ाइलों को संग्रहीत करने की आवश्यकता है। वर्बिनरी और छवि से बेहतर डेटा प्रकार कौन सा है?बार्नी डेटा स्टोर करने के लिए VarBinary बनाम छवि SQL सर्वर डेटा प्रकार?

उत्तर

119

चूंकि छवि को बहिष्कृत किया गया है, तो आपको varbinary का उपयोग करना चाहिए।

प्रति Microsoft (लिंक @Christopher के लिए धन्यवाद)

ntext, पाठ, और छवि डेटा प्रकार Microsoft SQL सर्वर के भविष्य के संस्करण में हटा दिया जाएगा

। नए विकास कार्य में इन डेटा प्रकारों का उपयोग करने से बचें, और उन अनुप्रयोगों को संशोधित करने की योजना बनाएं जो वर्तमान में का उपयोग करते हैं। इसके बजाय nvarchar (अधिकतम), varchar (अधिकतम), और varbinary (अधिकतम) का प्रयोग करें।

बड़े गैर-यूनिकोड और यूनिकोड चरित्र और बाइनरी डेटा को संग्रहीत करने के लिए निश्चित और परिवर्तनीय-लंबाई डेटा प्रकार। यूनिकोड डेटा UNICODE UCS-2 वर्ण सेट का उपयोग करता है।

+10

http://msdn.microsoft.com/en-us/library/ms187993.aspx एक बेहतर कड़ी है। –

+3

मुझे इस डाउनवोट के बारे में अधिक जानकारी चाहिए। – cmsjr

+1

@ cmsjr: शायद क्योंकि माइक्रोसॉफ्ट कहता है: "छवि डेटा प्रकार को माइक्रोसॉफ्ट एसक्यूएल सर्वर के भविष्य के संस्करण में हटा दिया जाएगा।" – Ehsan

11

varbinary(max) तरह से करने के लिए (SQL सर्वर 2005 में शुरू) जाने

8

भी बल्कि spiffy FileStream, एसक्यूएल सर्वर में शुरू की गई है है 2008.

+0

स्पिफी: * उपस्थिति में स्मार्ट *? – Liam

+0

'बल्कि स्पिफी' का कुछ सामान्य अर्थ है (केवल 'स्पिफी' से) सामान्य स्थानीय भाषा में ... सबसे उपयुक्त मुझे लगता है। – Grantly

+0

यह प्रश्न कॉलम प्रारूपों के बारे में है और 'फ़ाइलस्ट्रीम' केवल भंडारण व्यवहार है। Filestream 'varbinary (अधिकतम)' का उपयोग कर लागू किया गया है और आपके एसक्यूएल सर्वर उदाहरण में परिवर्तन कर रहा है। – paqogomez

3

https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql

छवि

परिवर्तनीय-लंबाई बाइनरी डेटा 0 से 2^31-1 (2,147,483,647) बाइट्स से। फिर भी यह छवि डेटाप्रकार उपयोग करने के लिए, लेकिन के बारे में पता होना समर्थित है:

https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql

varbinary [(एन | अधिकतम)]

चर लंबाई बाइनरी डेटा। एन 1 से 8,000 का मूल्य हो सकता है। अधिकतम इंगित करता है कि अधिकतम संग्रहण आकार 2^31-1 बाइट है। स्टोरेज आकार डेटा की वास्तविक लंबाई + 2 बाइट्स दर्ज की गई है। दर्ज किया गया डेटा लंबाई में 0 बाइट्स हो सकता है। Varbinary के लिए एएनएसआई एसक्यूएल समानार्थी बाइनरी भिन्न है।

तो दोनों आकार (2 जीबी) में समान रूप से समान हैं। लेकिन बारे में पता होना:

https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2016#features-not-supported-in-a-future-version-of-sql-server

हालांकि "छवि" डेटाप्रकार के अंत अभी भी निर्धारित नहीं किया है, तो आप "भविष्य" सबूत बराबर का उपयोग करना चाहिए।

लेकिन आपको खुद से पूछना है: कॉलम में ब्लॉब्स क्यों संग्रहीत करना?

https://docs.microsoft.com/en-us/sql/relational-databases/blob/compare-options-for-storing-blobs-sql-server

संबंधित मुद्दे