sqlserver字符集问题(中文出乱码,排序错误等)
在创建sqlserver 数据库时未指定排序字符集,databases则会使用instances的排序规则。为了支持中文,需要设置成Chinese_PRC_CI_AS。
(1)通过sql脚本修改
--修改现有databases的排序规则 ALTER DATABASE mydb COLLATE Chinese_PRC_CI_AS
(2)通过界面操作。右击数据库——属性——选项——修改排序规则。
2、如果操作报错,出现数据库被其他用户连接使用时,出现排他锁的错误。此时用脚本修改为单用户模式——改排序规则——再修改回多用户。
引用 https://www.cnblogs.com/FocusIN/p/5392765.html
Microsoft SQL Server 5030错误解决办法
今天在使用SQL Server时,由于之前创建数据库忘记了设置Collocation,数据库中插入中文字符都是乱码,于是到DataBase的Options中修改Collocation,出现了The database could not be exclusively locked to perform the operation这个错误,无法修改字符集为Chinese_PRC_90_CI_AS。
解决办法找了很久才找到,如下:
1.执行SQL: ALTER DATABASE db_database SET SINGLE_USER WITH ROLLBACK IMMEDIATE
修改为单用户模式
2.然后关闭所有的查询窗口,修改Options的Collocation属性为Chinese_PRC_90_CI_AS
修改数据库字符集 ALTER DATABASE db_database COLLATE Chinese_RPC_90_CI_AS
3.执行SQL : ALTER DATABASE db_database SET MULTI_USER
再修改为多用户模式
ALTER DATABASE EtlWorkSafetyLawEnforcement SET SINGLE_USER WITH ROLLBACK IMMEDIATE go ALTER DATABASE EtlWorkSafetyLawEnforcement COLLATE Chinese_PRC_CI_AS GO ALTER DATABASE EtlWorkSafetyLawEnforcement SET MULTI_USER