我们日常写Sql语句向数据库插入中文时
如以下语句

其中name字段有中文
执行之后的结果却是这样的

这是因为数据库的排序规则设置的问题导致的
具体排序规则的详细如需了解,以下两个链接里有详细的介绍以及查询实例中的排序规则的方法
我们这里直接通过写Sql语句去解决这个问题
ALTER DATABASE 你要更改的数据库的名字 COLLATE Chinese_PRC_CI_AS
如果语句执行的时间过长,然后报了错,不要慌
我们重启MSSQL服务后再次执行就可以
下面说下Windows和Linux分别如何重启MSSQL服务
Windows下重启MSSQL服务:
右键我的电脑,点击管理

根据图中箭头依次操作即可重启MSSQL服务

Linux下重启MSSQL服务:
关闭: systemctl stop mssql-server
打开: systemctl start mssql-server
即可

重启服务后我们已经可以正常执行修改排序规则的语句
这里我们要注意一下,并不代表更改后,表的排序规则就改了
如果你不删除表,只是清空,那依然还是会乱码或者问号?
所以我们删表(Drop Table)之后再插入

已恢复正常中文显示
希望可以解决你的问题!
当在SQL数据库中插入中文数据时遇到乱码或问号,通常是由于排序规则设置不当导致的。可以通过修改数据库的排序规则来解决,例如设置为`Chinese_PRC_CI_AS`。在SQL2005中,可以使用`ALTER DATABASE`语句更改排序规则,如果执行时间过长导致报错,重启MSSQL服务即可。在Windows上,通过管理工具重启服务;在Linux上,使用`systemctl`命令。记得在修改排序规则后,如果已有表存在,可能需要删除并重新创建表以避免乱码。
https://blog.csdn.net/htl258/article/details/4007035
http://blog.itpub.net/28660496/viewspace-2692360/
1938

被折叠的 条评论
为什么被折叠?



