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

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

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

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

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

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

Linux下:

首先我们

systemctl stop mssql-server

停掉Linux上的MSSQL服务 

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

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

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

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

服务器端

/opt/mssql/bin

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

cd /opt/mssql/bin

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

 进去后再使用

./mssql-conf set-collation

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

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

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

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

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

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

还原好即可

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

select name,collation_name from sys.databases

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

已成功修改

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

希望可以解决你的问题!

你可能感兴趣的:(Linux环境部署,数据库,sqlserver,database,linux)