SQL Server 字符集问题——中文乱码、排序错误
Table of contents
在创建 SQLServer 数据库时未指定排序字符集,databases 则会使用 instances
的排序规则。为了支持中文,需要设置成 Chinese_PRC_CI_AS
。
通过 sql 脚本修改
-- 修改现有databases的排序规则
ALTER DATABASE dbname COLLATE Chinese_PRC_CI_AS
通过SQL Server 客户端操作
右击数据库——属性——选项——修改排序规则。
如果操作报错,出现数据库被其他用户连接使用时,出现排他锁的错误。此时用脚本修改为单用户模式——改排序规则——再修改回多用户。
Microsoft SQL Server 5030错误解决办法
修改为单用户模式:
ALTER DATABASE db_database SET SINGLE_USER WITH ROLLBACK IMMEDIATE
然后关闭所有的查询窗口,修改
Options
的Collocation
属性为Chinese_PRC_90_CI_AS
-- 修改数据库字符集 ALTER DATABASE db_database COLLATE Chinese_PRC_90_CI_AS
再修改为多用户模式
ALTER DATABASE db_database SET MULTI_USER