هل هناك فرق تقني كبير بين أنواع بيانات Varbinary (Max) وأنواع بيانات الصور؟

StackOverflow https://stackoverflow.com/questions/4113294

سؤال

كنت أقرأ على الإنترنت هذه العبارات خادم قاعدة البيانات أنواع البيانات:

  1. VARBINARY(MAX) - السلاسل الثنائية ذات الطول المتغير يمكن تخزين ما يصل إلى 2^31-1 بايت.

  2. IMAGE - السلاسل الثنائية بطول متغير يصل إلى 2^31-1 (2،147،483،647) بايت.

هل هناك فرق تقني كبير حقًا بين VARBINARY(MAX) و IMAGE أنواع البيانات؟

إذا كان هناك فرق: هل يتعين علينا تخصيص كيفية إدراج ADO.NET وتحديث حقل بيانات الصورة في SQL Server؟

هل كانت مفيدة؟

المحلول

يقومون بتخزين نفس البيانات: هذا بقدر ما يذهب.

"image"تم إهماله ولديه مجموعة محدودة من الميزات والعمليات التي تعمل معها. varbinary(max) يمكن تشغيلها مثل أقصر varbinary (كما سبق ل text و varchar(max)).

لا تستخدم image لأي مشروع جديد: فقط ابحث هنا عن المشكلات التي يواجهها القوم معها image و text أنواع البيانات بسبب الوظائف المحدودة.

أمثلة من ذلك: واحد, اثنين

نصائح أخرى

أعتقد أنه من الناحية الفنية متشابهة ، لكن من المهم ملاحظة ما يلي وثائق:

ستتم إزالة أنواع بيانات NTEXT والنص والصور في إصدار مستقبلي من خادم MicroSOFTSQL. تجنب استخدام أنواع البيانات هذه في أعمال التطوير الجديدة ، والتخطيط لتعديل التطبيقات التي تستخدمها حاليًا. استخدم Nvarchar (Max) و Varchar (Max) و Varbinary (Max) بدلاً من ذلك.

أنواع البيانات الثابتة والمتغيرة لتخزين أحرف كبيرة غير unicode و Unicode و> بيانات ثنائية. تستخدم بيانات Unicode مجموعة أحرف Unicode UCS-2.

يقومون بتخزين نفس البيانات: هذا بقدر ما يذهب.

تم إهمال "الصورة" ولديه مجموعة محدودة من الميزات والعمليات التي تعمل معها. يمكن تشغيل Varbinary (Max) على مثل Varbinary أقصر (DITTO للنص و Varchar (Max)).

لا تستخدم الصورة لأي مشروع جديد: ما عليك سوى البحث هنا عن المشكلات التي يواجهها القوم مع أنواع البيانات والنصوص بسبب الوظائف المحدودة.

في الواقع، VARBINARY يمكن تخزين أي بيانات يمكن تحويلها إلى صفيف بايت ، مثل الملفات ، وهذه هي نفس العملية IMAGE يستخدم نوع البيانات ، لذلك ، بموجب وجهة النظر هذه ، يمكن لكلا النوعين من البيانات تخزين نفس البيانات. ولكن VARBINARY لديك خاصية الحجم ، بينما IMAGE يقبل أي حجم حتى حدود نوع البيانات ، لذلك عند استخدام IMAGE نوع البيانات ، سوف تنفق المزيد من الموارد لتخزين نفس البيانات. في Microsoft® SQL Server®, ، ال IMAGE تم إهمال نوع البيانات حقًا ، ثم يجب أن تراهن VARBINARY نوع البيانات.

لكن كن حذرا: Microsoft® SQL Server® CE® (بما في ذلك أحدث إصدار 4.0) لا يزال يستخدم IMAGE لن يكون نوع البيانات وربما نوع البيانات هذا "يختفي" قريبًا ، لأنه في إصدارات الإصدار المدمجة ، يكون نوع البيانات هذا أفضل من أي تخزين للملفات السريعة الأخرى.

لقد وجدت عن غير قصد فرق واحد بينهما. يمكنك إدخال سلسلة في نوع الصورة ولكن ليس في varbinary. ربما هذا هو السبب في أن MS ينهض نوع الصورة لأنه من غير المنطقي حقًا تعيين صورة بسلسلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top