sqlserver字符集问题(中文出乱码,排序错误等)

时间:2021-04-20 06:53:17

 

在创建sqlserver 数据库时未指定排序字符集,databases则会使用instances的排序规则。为了支持中文,需要设置成Chinese_PRC_CI_AS。

(1)通过sql脚本修改

--修改现有databases的排序规则 ALTER DATABASE mydb COLLATE Chinese_PRC_CI_AS

(2)通过界面操作。右击数据库——属性——选项——修改排序规则。

sqlserver字符集问题(中文出乱码,排序错误等)

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