我有一个包含表格,定义和数据的MySQL转储的.sql文件插入到这些表中。如何将转储文件中表示的此数据库转换为MS SQL Server数据库?将MySQL数据库导入MS SQL服务器
回答
我找到一种方式,这在网络上
它要求工作的一点点,因为它必须由表来完成表。但无论如何,我可以将表,数据和约束条件复制到MS SQL数据库中。
这里是链接
http://www.codeproject.com/KB/database/migrate-mysql-to-mssql.aspx
这就是当Mysql和SQL都在一台机器中或者它们通过网络连接时。当两台不同的机器存在并且你有一个来自mysql的转储文件时这没有用。对? – Espanta 2015-11-06 09:37:30
如果使用PhpMyAdmin执行导出,则可以将sql兼容模式切换为“MSSQL”。这样,您只需针对MS SQL数据库运行导出的脚本,就完成了。
如果你不能或不想使用PhpMyAdmin,mysqldump也有一个兼容性选项,但是我个人宁愿让PhpMyAdmin为我做。
@marga,它没有为MS SQL 2008工作。 – marionmaiden 2010-04-14 11:26:35
这个答案适用于我,只需最小的修改生成的脚本。将它带入SQL Server 2012.之前没有看到兼容模式。 – Kiel 2016-06-29 14:04:23
我建议你使用mysqldump像这样:
mysqldump --compatible=mssql
phpMyAdmin仍然是一个web应用程序,并可能有大型数据库一些限制(脚本的执行时间,分配内存等等)。
@deklin,它没有为MS SQL 2008工作。 – marionmaiden 2010-04-14 11:26:15
唉,这给了我各种各样的兼容性问题。该脚本将包含反列周围的列名称,MSSQL中不存在的数据类型,将违反max-1000-inserts约束,auto_increment关键字等等。此答案是合乎逻辑的建议,但恐怕它不会工作得不好(至少:它不适合我)。 – Jeroen 2012-11-03 08:16:40
使用SQL Server Migration Assistant (SSMA)
除了MySQL之外它支持Oracle,Sybase和MS访问。
它看起来相当聪明,甚至能够处理非平凡的转移。它还具有一些命令行界面(除了GUI),理论上它可以集成到一些批量加载过程中。
这当前的下载链接,MySQL版本http://www.microsoft.com/en-us/download/details.aspx?id=42657
目前(2016年6月)的稳定版6.0.1崩溃,并显示当前(5.3.6)MySQL的ODBC驱动程序,同时传输数据。一切都是64位。 使用5.1.13 ODBC驱动程序的5.3版本正常工作。
只有当您可以将PC上的ODBC连接器安装到您的MySQL数据库时,此工具才有效。如果你只有一个.sql转储文件,你不能使用SSMA。 – 2013-02-21 18:20:27
MySQL引擎是免费软件,也有一个Windows版本。安装它并加载转储是一件微不足道的工作。如果你希望找到一种工具(甚至是商业版,更不用说免费),它可以可靠地将任意MySQL脚本转换为与SQL Server相同的工具 - 好吧,祝你好运。 – 2013-02-22 01:16:06
好点。这就是昨天我最终做的。在编写自己的自定义转换实用程序时,安装MySQL似乎是最佳选择。 SSMA在使用时很痛苦,但我最终得到了它的工作。 – 2013-02-22 16:07:07
这是我的导入方法。SQL文件到MS SQL:从MySQL
导出表
--compatible=mssql
和--extended-insert=FALSE
选项:mysqldump -u [username] -p --compatible=mssql --extended-insert=FALSE db_name table_name > table_backup.sql
拆分使用PowerShell导出的文件,每档30万行:
$i=0; Get-Content exported.sql -ReadCount 300000 | %{$i++; $_ | Out-File out_$i.sql}
运行每个文件在MS SQL Server Management Studio中
有几个提示how to speed up the inserts。
Other approach is to use mysqldump –where
option。通过使用这个选项,你可以在任何条件下分割你的表,这个条件由where
sql子句支持。
我们如何才能导出整个数据库而不是表格 – MonsterMMORPG 2017-03-23 15:34:56
尝试使用'--databases [db_name]'关键字来解释这个答案:http://stackoverflow.com/a/26096339/155687 – Vladislav 2017-03-27 06:57:39
这家伙有使用MS Access作为MySQL和MSSQL
之间的TUNEL一个简单的一招您可以阅读http://azamudd.in/convert-data-from-mysql-into-mssql-the-easy-way-via-ms-access/
后你也可以使用“ODBC” +“SQL Server导入和导出向导”。 下面的链接描述它: https://www.mssqltips.com/sqlservertutorial/2205/mysql-to-sql-server-data-migration/
我今天有一个非常类似的问题 - 我需要从MySQL大表(5个百万行)复制到MS SQL。
这里是我(在Ubuntu Linux操作系统)来完成的步骤:
创建一个表,MS SQL其中结构源表匹配的MySQL。
安装MS SQL命令行:https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools#ubuntu
转储的表从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"
在我的情况转储文件相当大,所以我决定将它分成若干小块(每个1000行) -
split --lines=1000 "$FILENAME" part-
最后,我遍历这些小文件,做了一些文本替换,并通过一个针对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
等与你的。
希望有所帮助。
- 1. 如何将MS SQL服务器表导入到mysql中?
- 2. 导入数据到MS SQL数据库
- 3. 将MySQL数据库从一台服务器导入到另一台服务器
- 4. 使用wamp服务器将数据库导入到mysql localhost
- 5. 将SQL服务器数据库导入到HDFS或HIVE
- 6. 将XML文件导入SQL服务器数据库
- 7. 如何将事务性MySQL数据导入SQL Server数据库
- 8. 将数据从MS SQL服务器复制到MySQL
- 9. 创建:::在SQL服务器数据库中导入数据
- 10. 如何导出MS Sql Server数据库转储并将其导入到Mysql数据库中?
- 11. 导出SQL Server数据库导入到Microsoft服务器
- 12. 将mysql数据库导入mariadb
- 13. 使用ActiveRecord将数据从MS Access数据库导入MySQL数据库
- 14. Sql数据库服务器
- 15. 将MS ACCESS数据库表导入teradata
- 16. 导入mysql数据库来打印服务器
- 17. ASP.NET:将数据插入SQL服务器
- 18. WordPress:将MySQL数据库导入到MariaDB
- 19. 数据库与sql服务器导入问题
- 20. 使用批量导入SQL服务器数据库
- 21. 从本地到服务器导入SQL数据库时出错
- 22. 使用存储过程将数据从MS Sql导入到MySQL
- 23. MySQL到MS-SQL服务器2005
- 24. 从MS SQL服务器更新MySql
- 25. 从服务器MySql数据库更新本地服务器MySql数据库
- 26. 通过phpmyadmin数据库导入服务器的SQL查询错误导入
- 27. 从网址将数据导入SQL服务器
- 28. 将数据从SQL服务器导入Excel工作表SSIS
- 29. 将数据导入SQL服务器时跳过重复项
- 30. C#将MS-Access数据库导入到SQL Server中?
您是否有权访问原始数据库?或者导出文件基本上都是你的? – Whakkee 2010-04-12 11:46:04
我对原始数据库也有访问权限。我只是认为使用转储可能会更容易 – marionmaiden 2010-04-12 11:49:19