数据库在安装时选择的是二进制,是区分大小写的,建立数据库时选择的排序规则是:Chinese_PRC_CS_AI,但之前写的一段sql代码不规范,没有注意大小写的问题,结果现在一放到分析器中执行就执行不了,请问高手有何办法解决?如这样的代码就执行不了:
DECLARE @T VARCHAR(20) 
SET @T='TEST'
INSERT INTO T1 (C1) VALUES (@t)
执行时就报请先申明变量@t
现在想不改变数据库排序规则,怎么样让这段代码执行通过。

解决方案 »

  1.   


    --> 创建表,插入数据:declare @maco table (number int,myvalue varchar(2))insert into @maco select 1,'aa' union allselect 2,'Aa' union allselect 3,'aA' union allselect 4,'AA'--不区分大小写select * from @maco WHERE nn='aa'--区分大小写select  * from @maco WHERE nn='aa' collate Chinese_PRC_CS_AI
      

  2.   

    你的数据库设置的是区分大小写的。DECLARE @T VARCHAR(20) 
    SET @T='TEST'
    INSERT INTO T1 (C1) VALUES (@t)这里的@T和@t是不同的。改为相同的就可以了。
      

  3.   

    重新安装SQL SERVER选为Chinese_PRC_CI_AI,新增数据库,把旧数据库导入到新数据库;
    虽然MASTER数据库可以重新构建成新的语序规则,不过还不如重新安装来的方便和快捷
      

  4.   

    Chinese_PRC_指针对大陆简体字UNICODE的排序规则。排序规则的后半部份(即后缀)含义:_BIN 二进制排序_CI(CS) 是否区分大小写:CI不区分,CS区分_AI(AS) 是否区分重音:AI不区分,AS区分   _KI(KS) 是否区分假名类型:KI不区分,KS区分 _WI(WS) 是否区分宽度:WI不区分,WS区分只能修改规则了,因为你说的是大量不规范。
      

  5.   

    区分大小写:select * from table where col='semye' collate Chinese_PRC_CS_AI不区分大小写:select * from table where col='semye' collate Chinese_PRC_CI_AI