从Oracle同步数据到SQLServer——大小写敏感设置

Oracle默认是大小写敏感,而SQLServer默认大小写不敏感,

尤其是涉及主键字段时,注意请提前设置SQLServer对应的数据库表为大小写敏感,不然会报主键冲突的错误。

设置表内大小写敏感

1 ALTER TABLE 表名
2 ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS 
3 --不区分大小写
4 
5 
6 ALTER TABLE tb 
7 ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS 
8 --区分大小写 

设置整个数据库大小写敏感

ALTER DATABASE [DatabaseName] COLLATE Chinese_PRC_CS_AS

 另外,除了大小写,还有是否区宽度(全角和半角)等,例如中文和英文状态的括号。

 设置参考值

  _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区分 

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

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

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

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

引用文章:

http://www.cnblogs.com/sandunban/p/7272291.html

https://blog.csdn.net/renzhadebenyuan/article/details/79631156

http://www.cnblogs.com/Bloghjb/p/9323845.html

原文地址:https://www.cnblogs.com/zhangleisanshi/p/10168528.html