DECLARE @T VARCHAR(20)
SET @T='TEST'
INSERT INTO T1 (C1) VALUES (@t)
执行时就报请先申明变量@t
现在想不改变数据库排序规则,怎么样让这段代码执行通过。
9 个解决方案
#1
--> 创建表,插入数据:
declare @maco table (number int,myvalue varchar(2))
insert into @maco select 1,'aa' union all
select 2,'Aa' union all
select 3,'aA' union all
select 4,'AA'
--不区分大小写
select * from @maco WHERE nn='aa'
--区分大小写
select * from @maco WHERE nn='aa' collate Chinese_PRC_CS_AI
#2
谢谢回复!我说的不是数据的大小写,而是代码的大小写会区分
#3
MSSQL代码不区分大小写.
#4
你的数据库设置的是区分大小写的。
这里的@T和@t是不同的。改为相同的就可以了。
DECLARE @T VARCHAR(20)
SET @T='TEST'
INSERT INTO T1 (C1) VALUES (@t)
这里的@T和@t是不同的。改为相同的就可以了。
#5
楼主代码中还有半个括号是全角的。
#6
重新安装SQL SERVER选为Chinese_PRC_CI_AI,新增数据库,把旧数据库导入到新数据库;
虽然MASTER数据库可以重新构建成新的语序规则,不过还不如重新安装来的方便和快捷
虽然MASTER数据库可以重新构建成新的语序规则,不过还不如重新安装来的方便和快捷
#7
谢谢各位的回复!对于各位的回复有几点说明:1、我的数据库必须装成二进制的,不然有些程序功能不能用;2、即使重装数据库,我也只能装成二进制的;3、举例只是部分代码,还有大量的代码因为当时写得不规范,没注意代码的大小写,没办法改成一致的,工作量太大了;4、至于例子中的全角括号,不好意思,打错了:)
#8
Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份(即后缀)含义:
_BIN 二进制排序_CI(CS) 是否区分大小写:CI不区分,CS区分
_AI(AS) 是否区分重音:AI不区分,AS区分
_KI(KS) 是否区分假名类型:KI不区分,KS区分
_WI(WS) 是否区分宽度:WI不区分,WS区分
只能修改规则了,因为你说的是大量不规范。
排序规则的后半部份(即后缀)含义:
_BIN 二进制排序_CI(CS) 是否区分大小写:CI不区分,CS区分
_AI(AS) 是否区分重音:AI不区分,AS区分
_KI(KS) 是否区分假名类型:KI不区分,KS区分
_WI(WS) 是否区分宽度:WI不区分,WS区分
只能修改规则了,因为你说的是大量不规范。
#9
区分大小写:select * from table where col='semye' collate Chinese_PRC_CS_AI
不区分大小写:select * from table where col='semye' collate Chinese_PRC_CI_AI
不区分大小写:select * from table where col='semye' collate Chinese_PRC_CI_AI
#1
--> 创建表,插入数据:
declare @maco table (number int,myvalue varchar(2))
insert into @maco select 1,'aa' union all
select 2,'Aa' union all
select 3,'aA' union all
select 4,'AA'
--不区分大小写
select * from @maco WHERE nn='aa'
--区分大小写
select * from @maco WHERE nn='aa' collate Chinese_PRC_CS_AI
#2
谢谢回复!我说的不是数据的大小写,而是代码的大小写会区分
#3
MSSQL代码不区分大小写.
#4
你的数据库设置的是区分大小写的。
这里的@T和@t是不同的。改为相同的就可以了。
DECLARE @T VARCHAR(20)
SET @T='TEST'
INSERT INTO T1 (C1) VALUES (@t)
这里的@T和@t是不同的。改为相同的就可以了。
#5
楼主代码中还有半个括号是全角的。
#6
重新安装SQL SERVER选为Chinese_PRC_CI_AI,新增数据库,把旧数据库导入到新数据库;
虽然MASTER数据库可以重新构建成新的语序规则,不过还不如重新安装来的方便和快捷
虽然MASTER数据库可以重新构建成新的语序规则,不过还不如重新安装来的方便和快捷
#7
谢谢各位的回复!对于各位的回复有几点说明:1、我的数据库必须装成二进制的,不然有些程序功能不能用;2、即使重装数据库,我也只能装成二进制的;3、举例只是部分代码,还有大量的代码因为当时写得不规范,没注意代码的大小写,没办法改成一致的,工作量太大了;4、至于例子中的全角括号,不好意思,打错了:)
#8
Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份(即后缀)含义:
_BIN 二进制排序_CI(CS) 是否区分大小写:CI不区分,CS区分
_AI(AS) 是否区分重音:AI不区分,AS区分
_KI(KS) 是否区分假名类型:KI不区分,KS区分
_WI(WS) 是否区分宽度:WI不区分,WS区分
只能修改规则了,因为你说的是大量不规范。
排序规则的后半部份(即后缀)含义:
_BIN 二进制排序_CI(CS) 是否区分大小写:CI不区分,CS区分
_AI(AS) 是否区分重音:AI不区分,AS区分
_KI(KS) 是否区分假名类型:KI不区分,KS区分
_WI(WS) 是否区分宽度:WI不区分,WS区分
只能修改规则了,因为你说的是大量不规范。
#9
区分大小写:select * from table where col='semye' collate Chinese_PRC_CS_AI
不区分大小写:select * from table where col='semye' collate Chinese_PRC_CI_AI
不区分大小写:select * from table where col='semye' collate Chinese_PRC_CI_AI