SqlServer的master、tempdb等系统数据库修改排序规则(由排序规则引起的中文字符乱码问题)

本文介绍了如何在Linux环境下修改MSSQL的master和tempdb数据库的排序规则,以解决临时表中文乱码的问题。首先停止MSSQL服务,然后使用mssql-conf工具设置新的排序规则,如Chinese_PRC_BIN。接着还原数据库,通过查询sys.databases验证排序规则已成功修改。Windows环境下建议卸载重装并在安装时选择正确的排序规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我之前一篇文章介绍了如何修改自己创建的数据库的排序规则

但由于自己写的存储过程里面有涉及到临时表的创建问题

由于临时表全部都是创建在tempdb这个数据库中的

导致运行时依然会遇到加载中文字符出现乱码和?的问题

故这篇文章介绍如何修改 master、tempdb等数据库修改排序规则的问题

Linux下:

首先我们

systemctl stop mssql-server

停掉Linux上的MSSQL服务 

然后检查下服务器上的数据库里有没有自己创建的数据库

若有自己创建的库,先备份,再删除掉(或者分离,如果不删除掉的话,修改的时候会报错) 

服务器端

/opt/mssql/bin

这个目录下有个mssq-conf这个文件,先进目录

cd /opt/mssql/bin

 进去后再使用

./mssql-conf set-collation

他需要我们输入参数,即修改后的排序规则

这里我输入Chinese_PRC_BIN 也就是二进制

然后回车,开始修改规则(如果你这步报错了,先检查下是不是自己创建的数据库没有删除,再检查下 MSSQL 服务是不是没有 stop)

修改成功,我们还原数据库

 

还原好即可

我们来看下修改后的系统数据库的排序规则 

select name,collation_name from sys.databases

 

已成功修改

如果你是Window下的话,建议卸载重装,安装的时候在选择排序规则那一步记得勾选好(血的教训)即可

希望可以解决你的问题!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Frost_216

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值