linux/docker 版 Sql Server新建的数据库插入中文乱码问题解决方案

SqlServer 插入遇到乱码

image.png

原因:在英文系统中,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

 


采用图形界面创建数据库,则在添加时修改为指定排序规则

image.png

如果数据库与表已经创建好了,发现是乱码,可以先导出库表结构脚本,手动在建库脚本的最后加入collate Chinese_PRC_CI_AS再执行脚本即可

 

posted on   五官一体即忢  阅读(471)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示