SQL Server 2005大小写敏感设置

好久没有接触SQL SERVER了,最近装了2008发现在书写SQL时对于数据库内的对象大小写敏感,找了一下设置。不过由于项目库的特性要求还是不能更改!挂在这供大家参考吧!

1.设置SQL脚本大小写不敏感
USE [master]
GO
ALTER DATABASE [DatabaseName] COLLATE Chinese_PRC_CI_AI
GO

2.设置大SQL脚本大小写敏感
USE [master]
GO
ALTER DATABASE [DatabaseName] COLLATE Chinese_PRC_CS_AI
GO

3.设置参考值
_CI_AI   不区分大小写、不区分重音、不区分假名类型、不区分宽度      
_CI_AI_WS   不区分大小写、不区分重音、不区分假名类型、区分宽度      
_CI_AI_KS   不区分大小写、不区分重音、区分假名类型、不区分宽度      
_CI_AI_KS_WS   不区分大小写、不区分重音、区分假名类型、区分宽度      
_CI_AS   不区分大小写、区分重音、不区分假名类型、不区分宽度      
_CI_AS_WS   不区分大小写、区分重音、   不区分假名类型、区分宽度      
_CI_AS_KS   不区分大小写、区分重音、区分假名类型、不区分宽度      
_CI_AS_KS_WS   不区分大小写、区分重音、区分假名类型、区分宽度      
_CS_AI   区分大小写、不区分重音、   不区分假名类型、不区分宽度      
_CS_AI_WS   区分大小写、不区分重音、不区分假名类型、区分宽度      
_CS_AI_KS   区分大小写、不区分重音、区分假名类型、不区分宽度      
_CS_AI_KS_WS   区分大小写、不区分重音、区分假名类型、区分宽度      
_CS_AS   区分大小写、区分重音、不区分假名类型、不区分宽度      
_CS_AS_WS   区分大小写、区分重音、不区分假名类型、区分宽度      
_CS_AS_KS   区分大小写、区分重音、区分假名类型、不区分宽度      
_CS_AS_KS_WS   区分大小写、区分重音、区分假名类型、区分宽度 

 

 

*CS(Case-Sensitivity缩写):CS 指定区分大小写

 CI(Case-Insensitivity缩写):CI 指定不区分大小写。

 

公司常用的语言集为:Chinese_PRC_CI_AS

 

举例分析 Chinese_PRC_CS_AI_WS   

 

前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。   

排序规则的后半部份即后缀 含义:   

_BIN 二进制排序   

_CI(CS) 是否区分大小写,CI不区分,CS区分   

_AI(AS) 是否区分重音,AI不区分,AS区分    

_KI(KS) 是否区分假名类型,KI不区分,KS区分    

_WI(WS) 是否区分宽度 WI不区分,WS区分 

区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。  

区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等。  

区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。   

区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项

<think>嗯,用户这次的问题是关于如何取消SQL Server区分大小写设置。看来用户已经查阅了站内引用资料,但需要更明确的操作指导。 从引用内容来看,引用1说明SQL Server默认区分大小写;引用2提到了通过修改排序规则实现大小写敏感的方法;引用3和4则展示了区分大小写的查询示例。用户真正需要的是如何恢复默认的区分大小写状态。 用户可能之前小心修改了数据库的排序规则设置,或者接手了别人配置的大小写敏感数据库,现在需要撤销这个设置。考虑到用户直接询问"取消设置"的方法,应该更关注实操步骤而非理论说明。 需要特别注意两点:一是修改排序规则属于高危操作,必须提醒备份;二是要区分实例级和数据库级的同修改方式。用户提供的引用2中ALTER DATABASE语句是正确的,但collate后面跟的Chinese_PRC_CI_AI其实已经是默认的区分大小写规则(CI表示Case Insensitive),这反而会造成混淆——用户真正需要的是把误设为CS(Case Sensitive)的规则改回CI。 准备在回复时给出完整步骤:先确认当前排序规则状态,再分层次讲解修改方法。对于数据库层级,要强调重建约束的风险;对于实例层级,则警告需要重装SQL Server的严重后果。最后提醒测试环节必可少,因为用户很可能在修改后需要验证是否真正生效。 用户看起来有一定SQL Server基础(能提出具体设置需求),但可能对底层机制熟悉,所以解释时要平衡专业性和易理解性。比如"Chinese_PRC_CI_AS"这样的术语需要拆解说明,但必深入代码页细节。 </think>取消 SQL Server大小写敏感设置(即恢复默认的区分大小写状态),主要通过修改数据库或列的排序规则(Collation)实现。以下是具体操作步骤: --- ### 一、**修改数据库排序规则(推荐)** 1. **确认当前排序规则** 执行以下 SQL,检查目标数据库的当前规则(`CI` 表示大小写敏感,`CS` 表示敏感): ```sql SELECT name, collation_name FROM sys.databases WHERE name = 'YourDatabaseName'; ``` 2. **修改为区分大小写规则** 将排序规则改为以 **`_CI_`** 结尾的规则(如 `Chinese_PRC_CI_AS`): ```sql ALTER DATABASE YourDatabaseName COLLATE Chinese_PRC_CI_AS; -- 示例规则 ``` ✅ 注意: - 需关闭数据库所有连接(切换为单用户模式),否则报错。 - 修改后,**需手动重建索引和约束**(旧约束可能仍保留原规则)[^2][^3]。 --- ### 二、**修改特定列的排序规则** 若只需修改单列: ```sql ALTER TABLE YourTableName ALTER COLUMN YourColumnName VARCHAR(100) COLLATE Chinese_PRC_CI_AS; -- 调整类型长度 ``` --- ### 三、**实例级修改(需谨慎)** 若需整个 SQL Server 实例默认区分大小写: 1. 卸载重装 SQL Server,在安装向导中选择 `_CI_` 结尾的排序规则。 2. ️ **影响严重**:需重建所有系统数据库,仅适用于新环境[^2]。 --- ### 四、**查询时临时取消大小写敏感** 若想修改规则,可在查询时使用 `COLLATE` 子句: ```sql SELECT * FROM t_mate WHERE full_name_ = 'test' COLLATE Chinese_PRC_CI_AS; -- 强制区分大小写 ``` --- ### 关键注意事项 1. **备份优先** 修改排序规则前必须备份数据库。 2. **影响范围** - 修改数据库规则会影响所有新建对象。 - 现有表的列需单独修改(除非重建表)。 3. **错误处理** 若执行 `ALTER DATABASE` 时报错: ```sql USE master; GO ALTER DATABASE YourDatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE; -- 强制断开连接 GO ALTER DATABASE YourDatabaseName COLLATE Chinese_PRC_CI_AS; GO ALTER DATABASE YourDatabaseName SET MULTI_USER; -- 恢复多用户访问 GO ``` 4. **测试验证** 修改后执行测试: ```sql -- 预期返回相同结果 SELECT * FROM t_mate WHERE full_name_ = 'TEST'; SELECT * FROM t_mate WHERE full_name_ = 'test'; ``` --- ### 总结步骤 ```mermaid graph TD A[确认当前排序规则] --> B{是否为 CI?} B -- 是 --> C[无需修改] B -- 否 --> D[备份数据库] D --> E[断开连接 - 单用户模式] E --> F[执行 ALTER DATABASE] F --> G[重建索引/约束] G --> H[恢复多用户模式] H --> I[测试验证] ``` > 通过以上操作,即可将 SQL Server 恢复到默认区分大小写的状态。若仅需临时生效,推荐在查询中指定 `COLLATE` 子句[^1][^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值