linux/docker 版 Sql Server新建的数据库插入中文乱码问题解决方案
SqlServer 插入遇到乱码
原因:
在英文系统中,SqlServer默认排序规则为英文字典顺序
解决方案一:
容器版 Sql Server ,在创建容器时,可以加上环境变量-e MSSQL_COLLATION=Chinese_PRC_CI_AS -e TZ=Asia/Shanghai
把排序规则设为中文字典顺序并忽略大小写区分重音,时区设置为上海,不然getdate()会比北京时间晚 8 小时。
容器已经创建的,可以把删除容器再重新创建,数据不会丢。 已经 创建的数据库,可以手动修改排序规则或导出脚本批量修改后再导入
解决方案二:
可以在创建数据库的时候指定排序规则
采用命令创建数据库,则在日志文件后面加上collate Chinese_PRC_CI_AS
CREATE DATABASE [IStrong_Gxfwb] CONTAINMENT = NONE ON PRIMARY ( NAME = N'IStrong_Gxfwb', FILENAME = N'/var/opt/mssql/data/IStrong_Gxfwb.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB ) LOG ON ( NAME = N'IStrong_Gxfwb_log', FILENAME = N'/var/opt/mssql/data/IStrong_Gxfwb_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB ) collate Chinese_PRC_CI_AS GO
采用图形界面创建数据库,则在添加时修改为指定排序规则
如果数据库与表已经创建好了,发现是乱码,可以先导出库表结构脚本,手动在建库脚本的最后加入collate Chinese_PRC_CI_AS
再执行脚本即可
吾乃代码搬运工,侵联删
分类:
sql / sqlserver
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了