sql server中对大小写不是不敏感吗?为什么错了?
createtriggercountstatisticontest3afterinsertasbeginifOBJECT_ID(n'id')isnullcreatetab...
create trigger countstatistic on test3
after insert
as begin
if OBJECT_ID (n'id') is null
create table countstatistic(number int default 0);
declare @countstatistic int;
select @countstatistic = COUNT (*) from test3;
if not exists (select * from countstatistic)
insert into countstatistic values(0);
update countstatistic set number = @countstatistic;
end
第四行报错;
然后把第四行改成
if OBJECT_ID (N'id') is null
就OK了,凭什么啊? 展开
after insert
as begin
if OBJECT_ID (n'id') is null
create table countstatistic(number int default 0);
declare @countstatistic int;
select @countstatistic = COUNT (*) from test3;
if not exists (select * from countstatistic)
insert into countstatistic values(0);
update countstatistic set number = @countstatistic;
end
第四行报错;
然后把第四行改成
if OBJECT_ID (N'id') is null
就OK了,凭什么啊? 展开
展开全部
N'string'固定的标示,另外sqlserver并不是不能区分大小写,而是默认不区分,可以设置的。
加上 N 代表存入数据库时以 Unicode 格式存储。
N'string' 表示string是个Unicode字符串
Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,'Michél' 是字符串常量而 N'Michél' 则是 Unicode 常量。Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。Unicode 常量确实有排序规则,主要用于控制比较和区分大小写。为 Unicode 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。Unicode 数据中的每个字符都使用两个字节进行存储,而字符数据中的每个字符则都使用一个字节进行存储。有关更多信息,请参见使用 Unicode 数据。
Unicode 字符串常量支持增强的排序规则。
加上 N 代表存入数据库时以 Unicode 格式存储。
N'string' 表示string是个Unicode字符串
Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,'Michél' 是字符串常量而 N'Michél' 则是 Unicode 常量。Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。Unicode 常量确实有排序规则,主要用于控制比较和区分大小写。为 Unicode 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。Unicode 数据中的每个字符都使用两个字节进行存储,而字符数据中的每个字符则都使用一个字节进行存储。有关更多信息,请参见使用 Unicode 数据。
Unicode 字符串常量支持增强的排序规则。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询