در نرمافزار SQL Server Management امکان بازگردانی پایگاهداده از نسخه بالاتر به نسخههای پائینتر وجود ندارد، بهعنوان مثال نمیتوانید Backup (بکآپ) پایگاهدادهای که از طریق نسخه ۲۰۱۲ این نرمافزار گرفته شدهاست را در نسخه ۲۰۰۸ آن Restore (بازگردانی) نمائید و درصورت اقدام به بازگردانی با خطای Specified Cast is not Valid مواجه خواهید شد.
بهترین راهکار این است که ما همیشه از نرم افزارهای جدید و بروز شده استفاده کنیم اما در برخی مواقع کاربر به برخی دلایل نیاز به بازگردانی در نسخه پائینتر دارد. جهت رفع این مشکل با استفاده از قابلیت Generate Script در MSSQL Server میتوان از کلیه جداول همراه با دادههای کنونی آنها، viewها، Store Procedureها Script (اسکریپت) تهیه نمود و این فایل اسکریپت را در نسخه پائینتر اجرا و از این طریق پایگاهداده را به نسخه پائینتر منتقل نمود. البته بهدلیل تفاوتهای نسخههای مختلف ممکن است با خطاهایی مواجه شوید که در این صورت طراح پایگاهداده میتواند بهصورت دستی تغییرات را با توجه به نسخه پائینتر اعمال و خطاها را برطرف نماید.
اسکریپت گرفتن از پایگاهداده MSSQL در مبدا:
- بر روی نام پایگاهداده کلیک راست نموده و از منو Task گزینه Generate Script را انتخاب نمائید.

- در صفحه بعد میتوانید انتخاب کنید که اسکریپت از کل پایگاهداده یا از Objectهای خاص (مثلا تنها Tableها) گرفته شود.
- در صورتی که میخواهید از پایگاهداده همراه با دادههای موجود اسکریپت گرفته شود بر روی دکمه Advance کلیک کنید.
- در MSSQL Server ۲۰۱۲ مانند شکل زیر مقدار Types of data to script را به Schema and Data تغییر دهید.

تغییر مقدار Types of data to script به Schema and Data در MSSQL Server 2012 - در MSSQL Server ۲۰۰۸ مانند شکل زیر مقدار Script Data را به True تغییر دهید.
- در MSSQL Server ۲۰۱۲ مانند شکل زیر مقدار Types of data to script را به Schema and Data تغییر دهید.

- در پایان فایل اسکریپت با پسوند .sql در مسیر مشخص شده ذخیره خواهد شد.
نحوه اجرای Script در مقصد:
بهسادگی میتوان در MSSQL Server نسخه پائینتر فایل اسکریپت گرفته شده را باز و مانند یک New Query آنرا اجرا کرد.
پس از اجرای اسکریپت، پایگاهداده همراه با کلیه Objectها و دادهها در مقصد ایجاد خواهد شد. البته بهتر است ابتدا پایگاهداده در مقصد ایجاد شده و سپس اسکریپت اجرا گردد.




4 پاسخ
سلام من پایگاه داده را در sql 2014 درست کردم و بعد در ۲۰۱۶ تغییرات را اعمال کردم و داده ها را پر کردم الان که میخوام از پایگاه داده در نرم افزارم در ویندوز ۳۲ بیتی استفاده کنم با مشکل مواجعه شدم و نمیدونم چرا میگه که این ورژن ساپورت نمیشهو ورژن نرم افزار این است ۸۵۲ و ۷۸۲
سلام، مشکلی که باهاش مواجه شدید احتمالاً به دلیل ناسازگاری نسخه SQL Server و معماری سیستم عامل یا نرمافزار شماست. وقتی پایگاه داده رو از SQL Server 2016 استفاده میکنید، فرمت فایل MDF ممکنه با نسخههای قدیمیتر یا سیستمهای ۳۲ بیتی ناسازگار باشه، بهویژه اگر از ویژگیهای جدید SQL 2016 استفاده کرده باشید.
برای رفع مشکل، پیشنهاد میکنم پایگاه داده رو با استفاده از اسکریپت (Generate Scripts) از SQL 2016 استخراج کنید و سپس در SQL 2014 یا حتی ۲۰۱۲ ایمپورت کنید. این کار باعث میشه پایگاه دادهتون با نسخههای قدیمیتر یا نرمافزارهایی با محدودیت ۳۲ بیتی سازگارتر بشه. همچنین مطمئن بشید نرمافزارتون با درایور مناسب (ODBC یا .NET Provider) به SQL Server متصل شده.
سلام و خسته نباشید.
واقعا از این مطلبتون نهایت تشکر و قدردانی رو دارم. کارم حسابی گیر کرده بود و با دیدن مطلبتون امیدوار شدم که با امتحان کردنش برام جواب داد.
هاستم رو جا به جا کردم ولی نسخه اس کیو ال سرور جدید از هاست قبلی پایین تر بود.
خدا خیرتون بده
رضایت شما هدف ماست