修改实例级别的collation
不同于修改数据库级别的collation,修改实例的collation相当于重置系统库,具体步骤如下:
1.收集信息
使用SSMS,在实例属性-常规中就能看到,也可以使用语句查看;
查看服务器排序规则、查看实例版本:
SELECT SERVERPROPERTY(‘Collation’) ;
SELECT @@VERSION ;
确认当前数据库安装目录。如果使用默认安装目录可参考如下路径汇总:
- SQL Server 2008
C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release - SQL Server 2012
C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\SQLServer2012 - SQL Server 2014
C:\Program Files\Microsoft SQL Server\120\Setup Bootstrap\SQLServer2014 - SQL Server 2016
C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\SQLServer2016 - SQL Server 2019
C:\Program Files\Microsoft SQL Server\150\Setup Bootstrap\SQL2019
2.备份数据库
事先备份好系统库中的自定义存储过程等对象。
业务数据库也进行全备份,备份后删除。
3.修改实例collation(需要停库)
管理员权限运行cmd,进入安装目录,此处以2019版本为例:
cd C:\Program Files\Microsoft SQL Server0\Setup Bootstrap\SQL2019
使用语句关闭SQLServer
Net stop mssqlserver
如果SQLServer Agent正在运行的话可能会提示一起关闭,我们选择Y一起关闭即可。
关闭后可从图形界面配置管理器看到,确实已经停止。
然后执行重新设置的语句(原Chinese_PRC_CS_AS ,改至SQL_Latin1_General_CP850_BIN2):
Setup /QUIET /ACTION=REBUILDDATABASE /instancename=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrator /sapwd=Hi**in@1234 /sqlcollation=SQL_Latin1_General_CP850_BIN2
格式说明:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName
/SQLSYSADMINACCOUNTS=accounts / [ SAPWD= StrongPassword ]
/SQLCOLLATION=CollationName)
注意: accounts 用户使用操作系统管理员用户,CollationName 为需要变更的排序格式。
修改之后启动SQL Server 服务 :
Net start mssqlserver
然后使用SSMS检查,并重新配置相关的系统设置,如内存上限、并行度之类的。
再还原数据库,还原系统库对象。
修改数据库级别的collation
直接使用SSMS修改即可,先备份数据库,备份完成后杀掉使用此数据库的进程,再改为单用户模式,再修改collation;修改完再改回多用户模式。
参考:
https://blog.csdn.net/qq_41248260/article/details/118091917