更改SQL Server 2012 数据库排序规则
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更改SQL Server 2012 数据库排序规则相关的知识,希望对你有一定的参考价值。
参考技术A 针对市面上有部份应用系统或者ERP系统对于数据库的排序规则是有要求,若安装数据库时没有留意,采用默认安装后,导致应用打开出现异常或者乱码现象。其实不用再卸载重装,通过如下步骤进行更改,节省大量的时间:1、先停止需要变更 sqlserver 的服务 : 在 运行命令行中 services.msc 命令,在打开的服界面打到并关闭sql server 的服务;(直接通过 Net stop mssqlserver 语句也可以关闭SQL Server 后台服务)
2、执行命令:(cmd命令行)
F:>Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrator /SAPWD=****** /SQLCOLLATION=Chinese_PRC_BIN
参数介绍:
InstanceName : MSSQLSERVER 默认为:MSSQLSERVER
SQLSYSADMINACCOUNTS: administrator 默认为:administrator
StrongPassword : sa账号的密码
CollationName : Chinese_PRC_BIN (根据实际情况需要填写)
F:>setup为安装文件存放路径;
3、等几分钟。出现成功提示
4、执行命令 Net start mssqlserver 启动 SqlServer
5、原有各个数据库会被移出,需要手动进行“附加数据库”数据库操作
将 SQL Server 排序规则从区分大小写更改为不区分大小写?
【中文标题】将 SQL Server 排序规则从区分大小写更改为不区分大小写?【英文标题】:Changing SQL Server collation to case insensitive from case sensitive? 【发布时间】:2011-03-18 19:23:11 【问题描述】:我最近安装了 SQL Server 2008,并选择了排序规则区分大小写。我想让整个实例(而不是该实例中的数据库)不区分大小写。如果我更改排序规则,它会影响任何现有数据库吗?如果是,以什么方式?
【问题讨论】:
【参考方案1】:您基本上需要再次运行安装以使用新排序规则重建master
数据库。您不能以任何其他方式更改整个服务器的排序规则。
见:
MSDN: Setting and changing the server collation How to change database or server collation(在页面中间)更新:如果要更改数据库的排序规则,可以使用 T-SQL 的这个 sn-p 获取当前排序规则:
SELECT name, collation_name
FROM sys.databases
WHERE name = 'test2' -- put your database name here
这将产生一个类似的值:
Latin1_General_CI_AS
_CI
表示“不区分大小写” - 如果您想区分大小写,请使用 _CS
代替:
Latin1_General_CS_AS
所以你的 T-SQL 命令是:
ALTER DATABASE test2 -- put your database name here
COLLATE Latin1_General_CS_AS -- replace with whatever collation you need
您可以使用以下方法获取服务器上所有可用排序规则的列表:
SELECT * FROM ::fn_helpcollations()
您可以使用以下命令查看服务器的当前排序规则:
SELECT SERVERPROPERTY ('Collation')
【讨论】:
好的,感谢您提供的信息。现在至少我想尝试更改数据库的排序规则以使其不区分大小写。我发现这个'ALTER DATABASE DEV_DB COLLATE [不区分大小写的键]是一样的。但不确定用于不区分大小写的值。任何帮助都是可观的!【参考方案2】:您可以这样做,但更改会影响插入数据库的新数据。从长远来看,请按照上面的建议进行操作。
还有一些技巧可以覆盖排序规则,例如存储过程或函数的参数、别名数据类型以及为变量分配数据库的默认排序规则。要更改别名类型的排序规则,您必须删除别名并重新创建它。
您可以使用 COLLATE 子句覆盖文字字符串的默认排序规则。如果您不指定排序规则,则会为文字分配数据库默认排序规则。您可以使用 DATABASEPROPERTYEX 来查找数据库的当前排序规则。
您可以通过在 SELECT 语句的 ORDER BY 子句中指定排序规则来覆盖服务器、数据库或列排序规则。
【讨论】:
以上是关于更改SQL Server 2012 数据库排序规则的主要内容,如果未能解决你的问题,请参考以下文章