第一步:创建测试表
CREATE TABLE aaaaa
(
a varchar (18) COLLATE Chinese_PRC_CS_AS_WS NULL ,
b varchar (18) COLLATE Chinese_PRC_CS_AS_WS NOT NULL ,
c decimal (18, 0) NOT NULL ,
d varchar (10) COLLATE Chinese_PRC_CS_AS_WS NULL
);
ALTER TABLE aaaaa ADD CONSTRAINT [PK_aaaaa ] PRIMARY KEYCLUSTERED (c,b);
CREATE TABLE bbbb
(
a varchar (18) COLLATE Chinese_PRC_CI_AS NULL ,
b varchar (18) COLLATE Chinese_PRC_CI_AS NOT NULL ,
c decimal (18, 0) NOT NULL ,
d varchar (10) COLLATE Chinese_PRC_CI_AS NULL
);
CREATE TABLE ccccc
(
a varchar (18) COLLATE Chinese_PRC_CI_AS NULL ,
b varchar (18) COLLATE Chinese_PRC_CI_AS NOT NULL ,
c decimal (18, 0) NOT NULL ,
d varchar (10) COLLATE Chinese_PRC_CI_AS NULL
);
ALTER TABLE bbbbADD CONSTRAINT [PK_bbbb ] PRIMARY KEYCLUSTERED (c,b);
我要实现的功能是:当在aaaaa表内插入一条数据时,首先判断bbbb是否有这条数据的存在,如果存在就不触发,如果不存在就触发。
下面是我写的一个触发器:但是报:无法解决 equal to 操作的排序规则冲突。请大家给点意见
创建触发器
create TRIGGER aaaaa_CBD_INSERTING ON aaaaa FOR insert AS BEGIN
declare @v_rowcount int
select @v_rowcount=count(*) from bbbb G,inserted I where G.a='aaaaa' andG.c=I.c or G.b=I.b
if (@v_rowcount = 0)
begin
insert into ccccc values('1','1','1','1')
end
end
|