server导出到mysql数据库_如何将SQL Server数据库导出到MySQL?

如上所述,如果您的数据包含数据中的制表符,逗号或换行符,那么导出和导入CSV将非常困难。 值将溢出字段,您将收到错误。 如果您的任何长字段包含带有换行符的多行文本,则此问题会更严重。

我在这些情况下的方法是使用BCP命令行实用程序从SQL服务器导出数据,然后在MySQL中使用LOAD DATA INFILE .. INTO TABLE命令重新读取数据文件.BCP是最古老的SQL Server之一 命令行实用程序(可以追溯到SQL服务器的诞生 - v6.5)但它仍然存在,并且仍然是最简单,最可靠的数据输出方式之一。

要使用此技术,您需要在MySQL中使用相同或等效的模式创建每个目标表。 我通过右键单击SQL企业管理器中的数据库,然后单击任务 - >生成脚本...来为所有表创建一个SQL脚本。 然后,您必须手动将脚本转换为MySQL兼容的SQL(绝对是作业中最糟糕的部分),最后在MySQL数据库上运行CREATE TABLE命令,这样就可以在列式方面为SQL服务器版本提供匹配的表,空并准备好 数据。

然后,从MS-SQL端导出数据,如下所示。

bcp DatabaseName..TableName out TableName.dat -q -c -T -S ServerName -r \0 -t !\t!

(如果您使用的是SQL Server Express,请使用-S值,如下所示:-S“ComputerName \ SQLExpress”)

这将创建一个名为TableName.dat的文件,其字段由![tab]分隔! 和\ 0 NUL字符分隔的行。

现在将.dat文件复制到MySQL服务器上的/ tmp并加载到MySQL端,如下所示:

LOAD DATA INFILE '/tmp/TableName.dat' INTO TABLE TableName FIELDS TERMINATED BY '!\t!' LINES TERMINATED BY '\0';

不要忘记必须在MySQL端创建表(本例中的TableName)。

在转换SQL模式时,此过程非常简单,但它适用于最困难的数据,因为它使用平面文件,您永远不需要说服SQL Server与MySQL通信,反之亦然。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值