栏目导航: 首页 > 数据库类 > MSSQL数据库 > 内容

MySQL数据导入到mssql数据库

www.hx99.net    时间: 2014-09-27    阅读: 次     整理: 华西安全网

 mysqldump -u root -ppassword --no-create-db --no-create-info --complete-insert --compatible=mssql  --default-character-set=utf8 --skip-opt --compact  --extended-insert=false   dbname tablename|sed "s/\\\'/''/g">tablename.sql

--no-create-db 不输出建database的脚本
--no-create-info 不输出创建table的脚本
--complete-insert   完整的插入,输出每个字段(如: insert into table(field1,field2,....) values(value1,value2,...))
--compatible=mssql 教本兼容格式,这里是mssql 这样教本里就会把table的名字和字段名用“号引起来,而不是mssql不能识别的`号。
--default-character-set=utf8 默认编码
--compact 输出尽量少的信息
--extended-insert=false  禁用它,可以每行生成一句insert语句。否则只输出一个insert,如:insert into table values(value1,value2,...),(value1,value2,...),...(value1,value2,..)。这种格式sqlserver不识别。
mysql中用\转义 字符串里的 单引号等字符,而sqlserver的字符串中两个单引号表示一个单引号。没找到mysqldump指定转义字符的选项。有个fields-escaped-by选项,但只有在输出文本格式的时候有用,输出sql语句的时候不能用。
 
所以只好用sed替换一下 sed "s/\\\'/''/g"  
本文来源:华西安全网[http://www.hx99.net]
发表评论】【告诉QQ好友】【错误报告】【加入收藏】【关闭