我之前一篇文章介绍了如何修改自己创建的数据库的排序规则
但由于自己写的存储过程里面有涉及到临时表的创建问题
由于临时表全部都是创建在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下的话,建议卸载重装,安装的时候在选择排序规则那一步记得勾选好(血的教训)即可
希望可以解决你的问题!