SQL server数据库不能区分大小写怎么办?急!(最高可加到100)

时间:2021-09-10 04:46:11
我安装sqlserver的时候选的是默认的不区分大小写。但现在我需要区分了。于是我分别在RecruitDB库下和master库下执行:
alter database RecruitDB COLLATE  Chinese_PRC_CS_AS(其中RecruitDB是一个数据库的名字)

但是执行后我的这个库还是不能区分大小写。

我的测试方法:设置一个表,向里面insert数据
表格式:
CREATE TABLE [dbo].[TableAdmin] (
        [adminID] [int] IDENTITY (1, 1) NOT NULL ,
        [adminName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
) ON [PRIMARY]
GO
 
ALTER TABLE [dbo].[TableAdmin] ADD
        CONSTRAINT [PK_TableAdmin] PRIMARY KEY  CLUSTERED
        (
                [adminID]
        )  ON [PRIMARY] ,
        CONSTRAINT [IX_TableAdmin] UNIQUE  NONCLUSTERED
        (
                [adminName]
        )  ON [PRIMARY]
GO
然后我执行:
insert TableAdmin (adminName) values ('test')
insert TableAdmin (adminName) values ('TEST')
查询分析器报错:
 
所影响的行数为 1 行)
 
服务器: 消息 2627,级别 14,状态 2,行 1
违反了 UNIQUE KEY 约束 'IX_TableAdmin'。不能在对象 'TableAdmin' 中插入重复键。
语句已终止。
 
显然是因为插入第二航的时候在adminName地方不符合unique约束
说明数据库还是把大小写认为是一样的。
现在我要然数据库区分大小写怎么办呢?

能有什么方法,再不重装SQL Server,最好也不重建数据库的情况下能让它区分大小写呢?当然,最好是让整个sqlserver系统上所有数据库都能区分大小写。

4 个解决方案

#1


不设 [adminName]为主键

#2


1.when you use:
alter database RecruitDB COLLATE  Chinese_PRC_CS_AS
you should restart mssqlserver service
2.run rebuildm in DOS prompt
In the Collation Settings dialog box, verify or change settings used for the master database and all other databases. 








#3


你設的是排序規則,不是大小寫敏感

#4


更改排序规则。

alter database 数据库 collate 排序规格


其中,某些排序规则指定CI 不区分大小写,CS 指定区分大小写。

如:alter database 数据库 COLLATE Chinese_PRC_CI_AS 
    不区分大小写,而
    alter database 数据库 COLLATE Chinese_PRC_CS_AS 
    使之区分大小写。

使用如下命令,可以获得更多的规则:
SELECT *
FROM ::fn_helpcollations()


在sql server2000中如何改变整个sql的 排序规则名称 
 重建 master 数据库 
关闭 Microsoft® SQL Server™ 2000,然后运行 Rebuildm.exe。该程序位于 Program Files\Microsoft SQL Server\80\Tools\Binn 目录中。
在"重建 Master"对话框中单击"浏览"按钮。

在"浏览文件夹"对话框中,选择 SQL Server 2000 光盘上或用于安装 SQL Server 2000 的共享网络目录中的 \Data 文件夹,然后单击"确定"按钮。

单击"设置"按钮。在"排序规则设置"对话框中,验证或更改用于 Master 数据库或其它数据库的设置。 
最初,显示的是默认排序规则设置,但这些设置有可能与安装期间选择的排序规则不匹配。可以选择与安装期间使用的排序规则相同的设置,也可以选择新的排序规则设置。完成后单击"确定"按钮。

在"重建 Master"对话框中单击"重建"按钮以启动进程。 
重建 Master 实用工具重新安装 master 数据库。

说明  若要继续,则可能需要终止正在运行的服务器。

#1


不设 [adminName]为主键

#2


1.when you use:
alter database RecruitDB COLLATE  Chinese_PRC_CS_AS
you should restart mssqlserver service
2.run rebuildm in DOS prompt
In the Collation Settings dialog box, verify or change settings used for the master database and all other databases. 








#3


你設的是排序規則,不是大小寫敏感

#4


更改排序规则。

alter database 数据库 collate 排序规格


其中,某些排序规则指定CI 不区分大小写,CS 指定区分大小写。

如:alter database 数据库 COLLATE Chinese_PRC_CI_AS 
    不区分大小写,而
    alter database 数据库 COLLATE Chinese_PRC_CS_AS 
    使之区分大小写。

使用如下命令,可以获得更多的规则:
SELECT *
FROM ::fn_helpcollations()


在sql server2000中如何改变整个sql的 排序规则名称 
 重建 master 数据库 
关闭 Microsoft® SQL Server™ 2000,然后运行 Rebuildm.exe。该程序位于 Program Files\Microsoft SQL Server\80\Tools\Binn 目录中。
在"重建 Master"对话框中单击"浏览"按钮。

在"浏览文件夹"对话框中,选择 SQL Server 2000 光盘上或用于安装 SQL Server 2000 的共享网络目录中的 \Data 文件夹,然后单击"确定"按钮。

单击"设置"按钮。在"排序规则设置"对话框中,验证或更改用于 Master 数据库或其它数据库的设置。 
最初,显示的是默认排序规则设置,但这些设置有可能与安装期间选择的排序规则不匹配。可以选择与安装期间使用的排序规则相同的设置,也可以选择新的排序规则设置。完成后单击"确定"按钮。

在"重建 Master"对话框中单击"重建"按钮以启动进程。 
重建 Master 实用工具重新安装 master 数据库。

说明  若要继续,则可能需要终止正在运行的服务器。