mysqldump导出数据到mssql
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"