sql server大小写敏感

2011-11-24  黄桂梅 

sql server数据库表、字段,可区分大小写,也可不区分大小写,这要视数据库类型,建的数据库排序规则而定。以下方法可以参考。


当修改默认排序规则的时候,经常会出现无法用排他锁锁定该数据库的错误,首先应该去掉其他的访问线程。

CREATE TABLE #HarveyLock

(

 SPID  INT,

 DBID  INT,

 OBJID  INT,

 INDID  INT,

 TYPE  VARCHAR(100),

 RESOURCE VARCHAR(100),

 MODE  VARCHAR(100),

 STATUS  VARCHAR(100)

)

INSERT INTO #HarveyLock EXEC SP_LOCK

SELECT distinct 'kill ' + convert(varchar,SPID )  FROM #HarveyLock

杀死线程后,在修改数据库的排序规则

 

 

表   

  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排序规则名称由排序规则指示器和比较风格构成。     

  语法:    

  <Windows_collation_name>  ::   =     

         CollationDesignator_<ComparisonStyle>   

             <ComparisonStyle>   ::=     

                  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 


549°/5495 人阅读/0 条评论 发表评论

登录 后发表评论