Sqlcmd导入数据脚本乱码解决方法

这类问题主要针对不同机器上数据交互出现,可能会出现由于脚本文件过大(文件>100MB以上),记事本/查询分析器都无法打开,只能用命令行导入


特定环境下造成乱码时,可尝试以下解决方法


A服务器-->生成单表数据脚本(文件>100MB以上)-->在B服务器导入

容易出错通常是由于数据文件格式没有N''


1、模拟在A服务器生成脚本方法

操作步骤:

Step1、在导入数据库—右健—任务—生成脚本


Step2、选中导出对象表


Step3、指定新建查询窗口和选中高级


Step4、在选中—高级—选中仅限数据、指定数据库(FALSE)选项



Step5、查看路径上生成文件格式(注:对方生成格式有没有N''),在SQL2014环境(varchar/nvarchar)都有加上



保存文件时设置为Unicode编码的脚本文件(注意代码页数字65001


2、在B服务器导入
Step1、开始—运行—cmd

Step2、在命令输入

sqlcmd -E -S "实例名"  -d 数据库名  -u  -i "D:\script.sql"


导入后显示中文显示乱码


--解决方法:

加命令-f 65001

命令说明:

Input/Output Options

-fcodepage | i:codepage[ ,o:codepage] | o:codepage[ ,i:codepage] 

指定输入和输出代码页。
代码页页码是指定已安装的 Windows 代码页的数值。


代码页转换规则:


如果未指定代码页, sqlcmd 会将当前代码页同时用于输入文件和输出文件,除非输入文件为 Unicode 文件,在此情况下无需进行转换。 


sqlcmd 自动识别 Big-endian Unicode 和 Little-endian Unicode 输入文件。 
如果已指定 -u 选项,输出将始终为 Little-endian Unicode。 


如果未指定输出文件,输出代码页将为控制台代码页。
这将使输出正确显示在控制台上。


假定多个输入文件具有相同的代码页。
可以将 Unicode 和非 Unicode 输入文件混合在一起。


在命令提示符处输入 chcp 以验证 Cmd.exe 的代码页。 



--命令行运行
sqlcmd -E -S "实例名"  -d 数据库名 -f 65001  -i "D:\script.sql"



可以chcp验证代码页

如:




  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值