‫در نرم‌افزار SQL Server Management امکان بازگردانی پایگاه‌داده از نسخه بالاتر به نسخه‌های پائین‌تر وجود ندارد، به‌عنوان مثال نمی‌توانید Backup (بک‌آپ) پایگاه‌داده‌ای که از طریق نسخه ۲۰۱۲ این نرم‌افزار گرفته شده‌است را در نسخه ۲۰۰۸ آن Restore (بازگردانی) نمائید و درصورت اقدام به بازگردانی با خطای Specified Cast is not Valid مواجه خواهید شد.

بهترین راهکار این است که ما همیشه از نرم افزارهای جدید و بروز شده استفاده کنیم اما  در برخی مواقع کاربر به برخی دلایل نیاز به بازگردانی در نسخه پائین‌تر دارد. جهت رفع این مشکل با استفاده از قابلیت Generate Script در MSSQL Server می‌توان از کلیه جداول همراه با داده‌های کنونی آن‌ها، viewها، Store Procedureها Script (اسکریپت) تهیه نمود و این فایل اسکریپت را در نسخه پائین‌تر اجرا و از این طریق پایگاه‌داده را به نسخه پائین‌تر منتقل نمود. البته به‌دلیل تفاوت‌های نسخه‌های مختلف ممکن است با خطاهایی مواجه شوید که در این صورت طراح پایگاه‌داده  می‌تواند به‌صورت دستی تغییرات را با توجه به نسخه پائین‌تر اعمال و خطاها را برطرف نماید.

اسکریپت گرفتن از پایگاه‌داده MSSQL در مبدا:

اسکریپت گرفتن از پایگاه‌داده MSSQL در مبدا

در MSSQL Server 2008  مانند شکل زیر مقدار script Data  را به True تغییر دهید.
تنظیم مقدار Script Data به True در MSSQL Server 2008

نحوه اجرای Script  در مقصد:

به‌سادگی می‌توان در MSSQL Server نسخه پائین‌تر فایل اسکریپت گرفته شده را باز و مانند یک New Query آن‌را اجرا کرد.

پس از اجرای اسکریپت، پایگاه‌داده همراه با کلیه Objectها و داده‌ها در مقصد ایجاد خواهد شد. البته بهتر است ابتدا پایگاه‌داده در مقصد ایجاد شده  و سپس اسکریپت اجرا گردد.

4 پاسخ

  1. سلام من پایگاه داده را در sql 2014 درست کردم و بعد در ۲۰۱۶ تغییرات را اعمال کردم و داده ها را پر کردم الان که میخوام از پایگاه داده در نرم افزارم در ویندوز ۳۲ بیتی استفاده کنم با مشکل مواجعه شدم و نمیدونم چرا میگه که این ورژن ساپورت نمیشهو ورژن نرم افزار این است ۸۵۲ و ۷۸۲

    1. سلام، مشکلی که باهاش مواجه شدید احتمالاً به دلیل ناسازگاری نسخه SQL Server و معماری سیستم عامل یا نرم‌افزار شماست. وقتی پایگاه داده رو از SQL Server 2016 استفاده می‌کنید، فرمت فایل MDF ممکنه با نسخه‌های قدیمی‌تر یا سیستم‌های ۳۲ بیتی ناسازگار باشه، به‌ویژه اگر از ویژگی‌های جدید SQL 2016 استفاده کرده باشید.

      برای رفع مشکل، پیشنهاد می‌کنم پایگاه داده رو با استفاده از اسکریپت (Generate Scripts) از SQL 2016 استخراج کنید و سپس در SQL 2014 یا حتی ۲۰۱۲ ایمپورت کنید. این کار باعث می‌شه پایگاه داده‌تون با نسخه‌های قدیمی‌تر یا نرم‌افزارهایی با محدودیت ۳۲ بیتی سازگارتر بشه. همچنین مطمئن بشید نرم‌افزارتون با درایور مناسب (ODBC یا .NET Provider) به SQL Server متصل شده.

  2. سلام و خسته نباشید.
    واقعا از این مطلبتون نهایت تشکر و قدردانی رو دارم. کارم حسابی گیر کرده بود و با دیدن مطلبتون امیدوار شدم که با امتحان کردنش برام جواب داد.
    هاستم رو جا به جا کردم ولی نسخه اس کیو ال سرور جدید از هاست قبلی پایین تر بود.
    خدا خیرتون بده

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *