【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
更多的用法需要各位自行研究了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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 让容器管理更轻松!