في هذه المقالة سوف نتحدث عن نقل قاعدة البيانات الي جهاز كمبيوتر اخر او الي سيرفر اخر بواسطة سكربت
ايضا في هذا المقال حل لمشكلة اصدارات السيكوال سيرفر المختلفة Sql server Verions
وهي تظهر عندما تحاول ان تعمل اتاش و ارفاق لققاعدة البيانات الي جهاز كمبيوتر اخر attach Database او عندما تحاول أخذ نسخة احتياطية او استرجاع النسخة
Error Message received when restoring an SQL Server 2008 database backup on an or lower versions
ثم تظهر رسالة الخطأ التالية
The database ''D:\PROJECTC\APP_DATA\MAINDB.MDF'' cannot be opened because it is version 655. This server supports version 611 and earlier. A downgrade path is not supported.
نظرة عامة علي المشكلة
الرسالة تقول انك تستخدم اصدار سيكوال سيرفر وتريد عمل اتاش لقاعدة البيانات باصدار مختلف عنها
بمعني مثلا انت تستخدم اصدار sql server 2005 وتريد ارفاق او عمل نسخة احتياطية لاصدار اخر لا يتوافق رقم الاصدار الحالي
هنا رقم الاصدار هو 655 وهو خاص بسيكوال سيرفر 2008 ..وانت تريد ارفاقه علي قاعدة بيانات رقم اصدارها 611 ..وهذا ل يتوافق وسوف يعطي البرنامج خطأ
وهذا جدول لكل الاصدارات للسيكوال سيرفر لتتعرف عليها
SQL Server Edition | Database Compatibility Level | Internal Database Version Number |
SQL Server 7 | 70 | 515 |
SQL Server 2000 | 80 | 539 |
SQL Server 2005 | 90 | 611/612 |
SQL Server 2008 | 100 | 655 |
SQL Server 2008 R2 | 105 | 660 |
SQL Server 2012 | 110 | 706 |
اذن كما نري ان رقم الاصدار غير متوافق بالفعل وسوف يخرج البرنامج ولن يرفق قاعدة البيانات
حل المشكلة
طبعا توجد لكل مشكلة حلول وليس حل واحد .
1- تحديث قاعدة البيانات الحالية الي رقم الاصدار المراد
2- اخذ سكربت لقاعدة البيانات المراد عمل نسخة احتياطية او ارفاقها في سكربت بسيط ثم وضعه لصق في قاعدة البيانات الحالية ثم اضغط علي زر تنفيذ
وسوف نتحدث هنا علي اسهل الحلول وهو اخذ نسخة سكربت كالاتي
الخطوة الاولي علي جهاز كمبيوتر اخر اذهب الي كمبيوتر اخر يعمل عليه الاصدار المراد ..مثلا صديق كمبيوتر اخر لديك ..فانت الان معك قاعدة بيانات باصدار مختلف وتريد وضعها عندك
الان انت في الكمبيوتر الاخر لصديق او نسخة اخري لديك علي جهاز اخر مثلا باصدار 2008 ثم نفذ الاتي عمل سكربت
database -->All tasks-->Generate scripts
وسوف تظهر لك شاشة مرحبا المعروفة في كل برنامج ..ليس بها شرح .فقط اضغط التالي
الان اختر ما تريد عمل سكربت له ..وهي اسم قاعدة البيانات المراد عمل سكربت لها ..ولا تنسي انك الان علي جهاز كمبيوتر اخر ولديك ملف قاعدة بيانات باسم معين
وتريد عمل ارفاق او اتاش لها علي جهاز كمبيوتر اخر .
سوف تظهر لك شاشة ..اضغط التالي لتحصل علي الشاشة التالية
الان اختر ما تريد عمل سكربت له ..من جداول او بروسيجرز او جداول استعلام او اي شئ اخر تريده
الان اختر اسماء الجداول المطلوبة ..او اخترها بالكامل
في هذه الشاشة تقول ان ناتج السكربت سوف يكون ..اما في ملف ..او في ذاكرة الكمبيوتر لكي تلصقه انت في مكان ما ..او في شاشة جديدة وهذا ما سوف اختره
لكي يفتح السكربت في شاشة اخري في نفس قاعدة البيانات ..ثم اضغط التالي
هنا سوف يعد الي مايصل لمائة في المائة ..وهذا معناه انها تمت بنجاح ..اضغط غلق بالاسفل ..لتحصل علي السكربت الان
الان هذا هو السكربت المطلوب ..احفظه الان في ملف نوت باد او ملف سيكوال سيرفر ..لكي تنقله بالكامل الي جهاز اخر سوف تستخدمه عليه ..اي سوف تشغله علي الجهاز الاخر
انتهت الان الخطوة الاولي ..لتنتقل الي جهاز الكمبيوتر لديك وهو ما سوف نضع به السكربت المطلوب
خطوة رقم 2 ..افتح السيكوال سيرفر لديك ..ثم انشئ قاعدة بيانات جديدة فارغة لا تحتوي علي اي جداول ..لاننا سوف نضع السكربت الخاص بالجداول داخلها
وسمها بنفس الاسم لقاعدة البيانات السابقة في الجهاز الاخر ..او باي اسم تريد ثم اضغط موافق
ثم الان قف بالماوس كليك يمين علي هذه القاعدة ثم سيظهر اختيارات اختر منها New Query
حتي ننفذ سكربت عليها ..وسوف يفتح شاشة كتابة فارغة بيضاء ..
الان ضع السكربت السابق الذي اخدناه في ملف سيكوال او في ملف نوت باد وقم بلصقه هنا ..
ثم اضغط علي زر f5 او اضغط علي كلمة تنفيذ بالاعلي Execute وهي بلون احمر
وسوف يتم تنفيذ السكربت بكامل قاعدة البيانات والجداول للاصدار الجديد
واعذروني للشرح الطويل نوعا ما ..
ملحوظة صغيرة ..هذه عملية متقدمة نوعا ما في السيكوال سيرفر ..وقد وضعت المشكلة حتي تعم الفائدة للجميع .لانها ممكن تواجه اي شخص سواء يبدا البرمجة او محترف بها .
اذا كنت تريد الان وضع المعلومات في الجدوال من الجداول السابقة من فضلك اقرأ الماقة الاتية ..مع العلم انها في مرحة متقدمة اكثر في المستويات الاخيرة
في دورة تعلم البرمجة كما في شركات البرمجة في موقعنا
رابط المقالة