sql server 大小写敏感

本文介绍如何在SQL Server中使用ALTER TABLE和ALTER DATABASE命令来修改表字段的排序规则,包括区分大小写和不区分大小写的设置方法。此外,还介绍了如何使用Windows排序规则名称指定不同的排序规则,并提供了UPPER和LOWER函数的使用说明。

 

表  
  ALTER   TABLE   表名字  
    ALTER   COLUMN   列名字 nvarchar(100)(类型)   COLLATE   Chinese_PRC_CI_AS    
  --不区分大小写  

  ALTER   TABLE   tb    
    ALTER   COLUMN   colname   nvarchar(100)   COLLATE   Chinese_PRC_CS_AS    
  --区分大小写  


修改到字段
还有一种在   设计表中-字段-排序规则-。。。设置区分大小写

  数据库  
  ALTER   DATABASE   database    
  COLLATE   Chinese_PRC_CS_AS    
  --区分大小写  
   
  ALTER   DATABASE   database    
    COLLATE   Chinese_PRC_CI_AS    
  --不区分大小写  


指定排序规则即可
  Windows   排序规则名称    
  在COLLATE子句中指定Windows排序规则名称。Windows排序规则名称由排序规则指示器和比较风格构成。    
  语法:   
    ::   =    
         CollationDesignator_  
                ::=    
                  CaseSensitivity_AccentSensitivity    
                  [_KanatypeSensitive   [_WidthSensitive   ]   ]    
                  |   _BIN    
   
  参数    
  CollationDesignator    
   指定Windows 排序规则使用的基本排序规则。基本排序规则包括:    
  
  当指定按字典排序时应用其排序规则的字母表或语言  
   
   
  用于存储非   Unicode   字符数据的代码页。    
  例如   Latin1_General   或法文,两者都使用代码页   1252,或土耳其文,它使用代码页   1254。    
   
  CaseSensitivity  
   
  CI   指定不区分大小写,CS   指定区分大小写。  
   
  AccentSensitivity  
   
  AI   指定不区分重音,AS   指定区分重音。  
   
  KanatypeSensitive  
   
  Omitted   指定不区分大小写,KS   指定区分假名类型。  
   
  WidthSensitivity  
   
  Omitted   指定不区分大小写,WS   指定区分大小写。  
   
  BIN  
   
  指定使用二进制排序次序。    



UPPER(Transact-SQL)

返回小写字符数据转换为大写的字符表达式。

Transact-SQL 语法约定

语法

UPPER ( character_expression ) 参数
character_expression
一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。

character_expression 的数据类型必须可隐式转换为 varchar。否则,请使用 CAST 显式转换 character_expression。

返回类型
varchar 或nvarchar

LOWER
将大写字符数据转换为小写字符数据后返回字符表达式。

语法
LOWER ( character_expression )

参数
character_expression

是字符或二进制数据表达式。character_expression 可以是常量、变量或列。character_expression 必须是可以隐性转换为 varchar 的数据类型。否则,使用 CAST 显式转换 character_expression。

返回类型
varchar

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23947808/viewspace-663487/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23947808/viewspace-663487/

### SQL Server大小写敏感设置及规则 SQL Server 默认情况下是不区分大小写的,这是因为其默认的排序规则(Collation)通常是 `Chinese_PRC_CI_AS` 或类似的大小写敏感规则[^3]。然而,在某些场景下可能需要对数据进行大小写敏感的操作,这可以通过调整排序规则或修改数据库/表结构来实现。 #### 数据库级别的大小写敏感设置 如果希望整个数据库都支持大小写敏感操作,则可以在创建数据库时指定相应的排序规则,或者通过修改现有数据库的排序规则来实现。例如: ```sql -- 创建一个大小写敏感的新数据库 CREATE DATABASE TestDB COLLATE Chinese_PRC_CS_AS; -- 修改现有数据库大小写敏感 ALTER DATABASE TestDB COLLATE Chinese_PRC_CS_AS; ``` 需要注意的是,修改数据库的排序规则可能会引发一些潜在问题,比如索引失效或其他依赖于原排序规则的功能受到影响[^4]。 #### 字段级别的大小写敏感设置 除了在整个数据库层面启用大小写敏感外,还可以针对特定字段单独配置。这种方法更加灵活且不会影响其他部分的数据处理逻辑。例如: ```sql -- 修改字段 full_name_ 使其支持大小写敏感 ALTER TABLE t_mate ALTER COLUMN full_name_ VARCHAR(200) COLLATE Chinese_PRC_CS_AS; ``` 这样做的好处在于只会影响该字段的行为,而不会改变整个数据库的全局行为。 #### 查询中的动态大小写敏感控制 对于临时性的需求,可以直接在查询语句中加入 `COLLATE` 关键字以实现大小写敏感匹配。这种方式无需更改任何物理结构即可完成目标。例如: ```sql SELECT * FROM t_mate WHERE full_name_ = 'Test' COLLATE Chinese_PRC_CS_AS; SELECT * FROM t_mate WHERE full_name_ LIKE 't%' COLLATE Chinese_PRC_CS_AS; ``` 上述方法适用于仅需在某次查询过程中应用大小写敏感的情况,而不必永久性地调整数据库或表的设计[^1][^2]。 --- ### 总结 SQL Server 提供了多种机制用于管理大小写敏感度,具体选择取决于实际应用场景的需求。无论是从数据库级别还是单个列的角度出发,都可以找到合适的解决方案来满足业务要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值