【MSSQL】执行大sql文件-内容乱码处理


MSSQL执行sql文件 ,文件小可以拷贝到查询窗口直接执行,

但文件过大如下图,文件已经有2G大小,使用普通编辑器都难以打开,vscode和EmEditor还是能打开的,若查看或编辑推荐用EmEditor处理;

 

 

大sql文件 使用查询窗口打开和执行时就十分困难了。

微软提供了Osql / sqlcmd  用cmd命令方式处理

SQL Server 2000版本之后可以使用 osql

SQL Server 2008版本之后可以使用osql 或sqlcmd


服务器编码为  936 简体GBK

 

 


osql的使用:
 格式:osql -U 用户 -P 密码 -S 服务器 -d 数据库名 -r -e -i "sql文件全路径" -o "输出内容到文件全路径"  
更多说明:
osql 实用工具 https://docs.microsoft.com/zh-cn/sql/tools/osql-utility?view=sql-server-ver15

如:osql -U sa -P 密码 -S . -d demo -r -e -i "E:\docs\sqlfile\ClientInfo.sql" -o "E:\docs\sqlfile\ClientInfo.txt"  

 sql脚本内容:

 

 但插入的结果却是乱码,如下图:

 

 

 

查阅"osql 乱码" 结果都是 改文件编码为:GB2312 试过多回均无效果,以及修改cmd字符集,依然无效;

执行  osql ?  命令出现乱码,如下图:

 

 

osql  的文件编码控制各位可以自行研究,osql乱码我没有处理成功;接下来选择sqlcmd 来处理

sqlcmd 实用工具

sqlcmd的使用:
 格式:sqlcmd -U 用户 -P 密码 -S 服务器 -d 数据库名 -r -e -i "sql文件全路径" -o "输出内容到文件全路径"   -f 编码号
更多说明:
sqlcmd 实用工具 https://docs.microsoft.com/zh-cn/sql/tools/sqlcmd-utility?view=sql-server-ver15

:sqlcmd -U sa -P 密码 -S . -d demo -r -e -i "E:\docs\sqlfile\ClientInfo.sql" -o "E:\docs\sqlfile\ClientInfo.txt"  -f 65001

我的文件是utf8的这里使用 65001

 

 

 

查询结果中文未有乱码,执行正确。

 

 

 

执行大sql文件还有其它 mssql工具 可实现,具体可以查阅 microsoft文档介绍:SQL 命令提示符实用工具  https://docs.microsoft.com/zh-cn/sql/tools/command-prompt-utility-reference-database-engine?view=sql-server-ver15

更多的用法需要各位自行研究了。

 

 



posted @   toiv  阅读(943)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示