Импорт файла дампа MySQL в SQL Server [дубликат]

Просто потому, что я не видел AngularJS и думал, что люди захотят узнать ...

angular.copy также предоставляет метод глубоких копирующих объектов и массивов.

71
задан Ispirer SQLWays Migrations 27 February 2015 в 13:55
поделиться

8 ответов

Я нашел способ для этого в сети

Он требует немного работы, потому что это нужно делать за столом. Но в любом случае я мог бы скопировать таблицы, данные и ограничения в базу данных MS SQL.

Вот ссылка

http://www.codeproject.com/KB /database/migrate-mysql-to-mssql.aspx

13
ответ дан tharif 21 August 2018 в 13:00
поделиться
  • 1
    То есть, когда Mysql и SQL находятся на одной машине или они подключены через сеть. Это не полезно, когда существуют две разные машины, и у вас есть файл Dump из mysql. правильно? – Espanta 6 November 2015 в 10:37

Также вы можете использовать «ODBC» + «Мастер импорта и экспорта SQL Server». Ниже ссылка описывает это: https://www.mssqltips.com/sqlservertutorial/2205/mysql-to-sql-server-data-migration/

0
ответ дан amir 21 August 2018 в 13:00
поделиться

Этот парень имеет простой трюк с использованием MS Access в качестве туннеля между MySQL и MSSQL

. Вы можете прочитать сообщение в http://azamudd.in/convert-data-from-mysql -в-MSSQL-The-легкий путь-через-мс-доступа /

0
ответ дан azamuddin 21 August 2018 в 13:00
поделиться

Вот мой подход для импорта .sql-файлов в MS SQL:

  1. Экспортировать таблицу из MySQL с параметрами --compatible=mssql и --extended-insert=FALSE: mysqldump -u [username] -p --compatible=mssql --extended-insert=FALSE db_name table_name > table_backup.sql
  2. Разделите экспортированный файл с помощью PowerShell на 300000 строк на файл: $i=0; Get-Content exported.sql -ReadCount 300000 | %{$i++; $_ | Out-File out_$i.sql}
  3. Запустите каждый файл в MS SQL Server Management Studio

Есть несколько советов , как для ускорения вставок .

Другой подход заключается в использовании опции mysqldump –where . Используя эту опцию, вы можете разбить таблицу на любое условие, которое поддерживается предложением where sql.

7
ответ дан Community 21 August 2018 в 13:00
поделиться

Я предлагаю вам использовать mysqldump так:

mysqldump --compatible=mssql

phpMyAdmin все еще является веб-приложением и может потенциально иметь некоторые ограничения для больших баз данных (время выполнения скрипта, распределяемая память и т. д.).

15
ответ дан Ryan Gates 21 August 2018 в 13:00
поделиться
  • 1
    @deklin, он не работал для MS SQL 2008. – marionmaiden 14 April 2010 в 12:26
  • 2
    Увы, это дает мне всевозможные проблемы со сборкой. Сценарий будет содержать обратные ссылки вокруг имен столбцов, типы данных, которые не существуют в MSSQL, будет нарушать ограничение max-1000-inserts, ключевые слова auto_increment и т. Д. И т. Д. Этот ответ является логическим предложением, но я боюсь, что это не так. Слишком хорошо работать (по крайней мере: это не для меня). – Jeroen 3 November 2012 в 10:16

Сегодня у меня была очень похожая проблема - мне нужно было скопировать большую таблицу (5 миллионов строк) из MySql в MS SQL.

Вот шаги, которые я сделал (в Ubuntu Linux):

  1. Создал таблицу в MS SQL, структура которой соответствует исходной таблице в MySql.
  2. Установленная командная строка MS SQL: https://docs.microsoft.com / en-us / sql / linux / sql-server-linux-setup-tools # ubuntu
  3. Сбросил таблицу из MySql в файл:
mysqldump \
    --compact \
    --complete-insert \
    --no-create-info \
    --compatible=mssql \
    --extended-insert=FALSE \
    --host "$MYSQL_HOST" \
    --user "$MYSQL_USER" \
    -p"$MYSQL_PASS" \
    "$MYSQL_DB" \
    "$TABLE" > "$FILENAME"
  1. В моем случае файл дампа был довольно большим, поэтому я решил разбить его на несколько небольших фрагментов (по 1000 строк каждый) - split --lines=1000 "$FILENAME" part-
  2. Наконец, я повторил эти маленькие файлы, выполнили некоторые замены текста и выполнили части по одному на сервере MS SQL:
export SQLCMD=/opt/mssql-tools/bin/sqlcmd

x=0

for file in part-*
do
  echo "Exporting file [$file] into MS SQL. $x thousand(s) processed"

  # replaces \' with ''
  sed -i "s/\\\'/''/g" "$file"

  # removes all "
  sed -i 's/"//g' "$file"

  # allows to insert records with specified PK(id)
  sed -i "1s/^/SET IDENTITY_INSERT $TABLE ON;\n/" "$file"

  "$SQLCMD" -S "$AZURE_SERVER" -d "$AZURE_DB" -U "$AZURE_USER" -P "$AZURE_PASS" -i "$file"
  echo ""
  echo ""

  x=$((x+1))
done

echo "Done"

Конечно, вам нужно будет заменить мои переменные, такие как $AZURE_SERVER, $TABLE , и т.д с твоим.

Надеюсь, что это поможет.

2
ответ дан Vladimir Korobkov 21 August 2018 в 13:00
поделиться

Если вы выполняете экспорт с помощью PhpMyAdmin , вы можете переключить режим совместимости sql на «MSSQL». Таким образом, вы просто запускаете экспортированный скрипт с вашей базой данных MS SQL, и все готово.

Если вы не можете или не хотите использовать PhpMyAdmin, в mysqldump , но лично я предпочел бы, чтобы PhpMyAdmin сделал это для меня.

5
ответ дан Whakkee 21 August 2018 в 13:00
поделиться
  • 1
    @marga, он не работал для MS SQL 2008. – marionmaiden 14 April 2010 в 12:26
  • 2
    Этот ответ работал для меня с минимальными изменениями в сгенерированном скрипте. Привела его в SQL Server 2012. Не видел режим совместимости раньше. – Kiel 29 June 2016 в 14:04

Использовать Помощник по миграции SQL Server (SSMA)

В дополнение к MySQL он поддерживает Oracle, Sybase и MS Access.

умный и способный обрабатывать даже нетривиальные передачи. Он также получил некоторый интерфейс командной строки (в дополнение к графическому интерфейсу), поэтому теоретически он может быть интегрирован в некоторый процесс пакетной загрузки.

Это текущая ссылка для загрузки для версии MySQL http://www.microsoft .com / en-us / download / details.aspx? id = 42657

Текущая (июнь 2016) стабильная версия 6.0.1 сбой с текущим (5.3.6) MySQL ODBC-драйвером при передаче данных. Все 64 бит. Версия 5.3 с драйвером ODBC 5.1.13 отлично работает.

51
ответ дан Zar Shardan 21 August 2018 в 13:00
поделиться
  • 1
    Этот инструмент работает только в том случае, если вы можете установить разъем ODBC со своего компьютера в базу данных MySQL. Если у вас есть файл дампа .sql, вы не можете использовать SSMA. – Jake Munson 21 February 2013 в 20:20
  • 2
    MySQL-движок - это бесплатное программное обеспечение, а также версия для окон. Установка и загрузка дампа - это тривиальное задание. Если вы надеетесь найти инструмент (даже коммерческий, не говоря уже о свободе), который надежно преобразует произвольный MySQL-скрипт в эквивалент SQL Server - хорошо, удачи в этом. – Zar Shardan 22 February 2013 в 03:16
  • 3
    Хорошая точка зрения. И это то, что я делал вчера. Короче говоря, ваша собственная утилита для преобразования, установка MySQL кажется лучшим вариантом. SSMA была болью в прикладе, но я в конечном итоге заставил ее работать. – Jake Munson 22 February 2013 в 18:07
  • 4
    SSMA - отличный вариант, это должен быть принятый ответ. Мне не было трудно использовать его вообще. – DonBecker 25 April 2013 в 16:14
  • 5
    Для этого требуется агент SQL Server, который не поставляется с SQL Server Express. – Vinicius Rocha 3 September 2013 в 00:13
Другие вопросы по тегам:

Похожие вопросы: