1 Востаннє редагувалося vovanxxx.2013 (11.02.2021 23:55:42)

Тема: Переміщення бази даних

Всім доброго вечора!!! У мене виникла проблема. База даних була створена в Visual Studio 2019 потрібно перемістити або скопіювати на sql server 2014 expres пробував приєднати за допомогою sql server management studio проблема виявилася в не підтриманні sql server версії бази даних, Нажаль sql server 2014 expres остання версія для windows 7,чи є взагалі варіанти з перенесенням,як мені це зробити?Буду вдячний за відповідь.

Post's attachments

зображення_2021-02-11_225536.png 280.26 kb, 27 downloads since 2021-02-11 

2

Re: Переміщення бази даних

База даних була створена в Visual Studio 2019

Наскільки я розумію, Visual Studio - це лише інструмент, а не двигун бази даних. Для початку потрібна версія того що є зараз.

SELECT @@version

3

Re: Переміщення бази даних

13.00.4001 версия бази даних в visual studio 2019
12.0.2000.8 версия sql server
Додав фото помилки в sql server managment studio

4 Востаннє редагувалося frz (12.02.2021 01:07:10)

Re: Переміщення бази даних

Тепер зрозуміліше. Отже, ви хочете мігрувати базу даних вищої версії на сервер нижчої версії. На жаль, стандартний UI такого не дозволяє.

При цьому якщо йдеться лише про таблиці, то їх можна змігрувати декількома способами - однак в такому випадку це робиться вручну і таблиця за таблицею.
1. Перед експортом потрібно вивантажити схему (таблиці, назви колонок і їхній тип даних) з Visual Studio 2019 - ось одна з відповідей на stackoverflow як це зробити: https://stackoverflow.com/a/14126076 - далі заранити схему на сервері-цілі.
2a. Виконати запит в Visual Studio, клікнути в лівому верхньому кутку результату щоб "вибрати все", далі скопіювати і вставити в Excel, зберегти можна наприклад в .csv файл; потім просто імпортувати кожен csv в таблицю.
2б. Виконати запит в Visual Studio, клікнути в лівому верхньому кутку результату щоб "вибрати все", далі правою кнопкою клікнути і вибрати Script, таким чином згенерувати insert скрипт, котрий пізніше запустити на сервері куди потрібно перенести дані.
https://stackoverflow.com/questions/243 … ual-studio

А от якщо є також складніші об'єкти типу процедур / функцій etc., то це вже більш скрупульозна робота, так як певний функціонал в старшій версії міг ще не існувати, тому потрібно очима дивитися, пробувати компілювати на сервері призначення, а ті фічі що не існують - переписувати засобами що існують відповідно до даної версії.

----

Є також варіант, яким би я скористався якщо даних реально багато і є пісочниця для сервера-призначення на якій можна попередньо погратися щоб нічого не поламати. Отже, встановлюємо PostgreSQL, вибираємо тулзу для міграції з переліку тут (їх багато) https://wiki.postgresql.org/wiki/Conver … PostgreSQL
Мігруємо новішу версію бази в PostgreSQL за допомогою обраної тулзи, далі за допомогою SSIS мігруємо з PostgreSQL назад в SQL Server тільки тієї старішої версії. Знову ж таки, це лише про таблиці, але не про процедури / функції (див. вище).

----

Чесно кажучи, я би спершу спробував під'єднатися з іншого комп'ютера найновішою версією SSIS, це би був найпростіший варіант. Тобто SSIS найновішої версії повинен читати обидві старші версії бази SQL Server, тож міграція в такому випадку була б найлегшою. Але для цього потрібен інший комп'ютер з сучасною OS і SSIS. Так само, це лише про таблиці, але не про процедури / функції (див. вище).

Прихований текст

Розумію, відповіді вище можуть суттєво відрізнятися від очікувань, що це все ж можна якось зробити "декількома кліками". Однак міграція на нижчу версію - це практично завжди челендж.

Прихований текст

Та ще й з такою базою як SQL Server - особисто в мене вона на першому місці з тих які я оминаю по можливості десятою дорогою.

5

Re: Переміщення бази даних

Отут ціла купа способів, як можна створити текстовий дамп бази: https://serverfault.com/questions/14763 … sql-script Але як і казав frz, немає ніяких гарантій, що воно нормально імпортнеться в старіший сервак. Хоча я сумніваюсь, що ви використовували якісь нові фічі, тому шанси хороші.

6

Re: Переміщення бази даних

що краще використовувати якщо не sql server?

7

Re: Переміщення бази даних

vovanxxx.2013 написав:

що краще використовувати якщо не sql server?

Це ви самостійно маєте визначитися.
Для себе я визначився - Postgres.

8

Re: Переміщення бази даних

Визиваємо контекстне меню потрібної БД, у задачах обираємо сформувати скрипти, обираємо Створити скрипт для всієї бази  та обєктів, далі шукаємо кнопку "Додатково" змінюємо  "Тільки схема" на "Схема і данні", протискуємо всі кнопки далі і отримуємо скрипт. Якщо він вийшов завеликий для студії, то з ним впорається sqlcmd

Подякували: leofun011