通常情况下,SQL Server要导入Excel文件,我们都是用SQL Server提供的导入工具。但其实SQL Server有更简单的方法: 1)接受数据导入的表已经存在。 insert into t1 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' , 'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$); 2)导入数据并生成表。 select * into t1 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$); 3) 导入Excel中指定的列到数据库表中指定的列。 INSERT INTO t1(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET 'MICROSOFT.JET.OLEDB.4.0' ,'Excel5.0; HDR=YES; DATABASE=c:\test.xls',sheet1$); 需要注意: 从“功能外围应用配置器”中选择“启动 OPENROWSET 和 OPENDATASOURCE 支持”选项。 1.在讨论这个问题之前首先介绍一下什么是“大数据量sql文件”。 导出sql文件。
选择数据库-----右击选择“转储SQL文件”-----选择"结构和数据" 。保存文件db_mras.sql文件。 2.导入sql文件。在MYSQL中新建数据库db_mras。
选择数据库-----右击选择“运行SQL文件”-----选择文件db_mras.sql,运行。 现在发现运行失败,提示错误“MySQL server has gone away” 。针对该问题提出如下解决方案: 提示该错误意思是:客户端与mysql的链接断开了,原因一般为sql运行时间过长或者sql文件太大。 排查问题原因: (1)mysql服务宕了 运行命令:show global status like 'uptime'; 如果uptime的值很大 表明最近mysql服务没有重启。 若日志也没有相关信息,表明服务没有重启过,可以排除这个可能了。 (2)mysql链接超时 运行命令:show global variables like '%timeout'; 查看运行结果中wait_timeout的值,一般为28800。代表mysql在误操作28800秒之后链接会关闭。 (3)mysql文件过大 运行命令:show global variables like 'max_allowed_packet'; 查看运行结果max_allowed_packet的值 ,如果过小,需要调整大。 解决方法: 在mysql的my.ini文件末尾加如下几句话: wait_timeout=2880000; interactive_time=2880000; max_allowed_packet=16M; 其中max_allowed_packet代表控制其缓存区的最大长度。 wait_timeout代表无操作链接等待时间。 修改完以上参数之后重启mysql服务。 查看是否修改成功:运行命令:show global variables like '%timeout'; show global variables like 'max_allowed_packet'; 如果找不到my.ini文件可以运行命令:mysql --help|grep my.ini 来查找文件路径。 如果以上办法没有解决你的问题,你还需要查看你的mysql文件安装盘的空间是否足够。 |