--这样? create table a(a int) gocreate trigger cfq on a instead of insert asif @@rowcount=0 returnif(select 1 from inserted where a is NULL)=1 begin insert into a select NULL from inserted where a is NULL end else begin if exists(select 1 from a,inserted b where a.a=b.a) begin raiserror('存在相同记录!',16,1) rollback tran end else begin insert into a select * from inserted where a is not NULL end end goinsert into a select 1 select * from a goinsert into a select NULL insert into a select 1drop trigger cfq drop table a
create table a(a int) gocreate trigger cfq on a instead of insert asif @@rowcount=0 returninsert into a select NULL from inserted where a is NULLif exists(select 1 from a,inserted b where a.a=b.a) begin raiserror('存在相同记录!',16,1) rollback tran end else begin insert into a select * from inserted where a is not NULL end goinsert into a select 1 select * from a goinsert into a select NULL insert into a select 1drop trigger cfq drop table a
set nocount on create table a(a int) gocreate trigger cfq on a instead of insert asif @@rowcount=0 returnif exists(select 1 from a,inserted b where a.a=b.a and a.a is not NULL) begin raiserror('存在相同记录!',16,1) endinsert into a select NULL from inserted where a is NULL insert into a select * from inserted where a is not NULL and not exists(select 1 from a,inserted b where a.a=b.a) goinsert into a select 1 select * from a goinsert into a select NULL insert into a select 1 insert into a select NULL insert into a select 2 insert into a select NULL insert into a select 2 drop trigger cfq drop table a
create table a(a int)
gocreate trigger cfq on a
instead of insert
asif @@rowcount=0 returnif(select 1 from inserted where a is NULL)=1
begin
insert into a select NULL from inserted where a is NULL
end
else
begin
if exists(select 1 from a,inserted b where a.a=b.a)
begin
raiserror('存在相同记录!',16,1)
rollback tran
end
else
begin
insert into a select * from inserted where a is not NULL
end
end
goinsert into a select 1
select * from a
goinsert into a select NULL
insert into a select 1drop trigger cfq
drop table a
gocreate trigger cfq on a
instead of insert
asif @@rowcount=0 returninsert into a select NULL from inserted where a is NULLif exists(select 1 from a,inserted b where a.a=b.a)
begin
raiserror('存在相同记录!',16,1)
rollback tran
end
else
begin
insert into a select * from inserted where a is not NULL
end
goinsert into a select 1
select * from a
goinsert into a select NULL
insert into a select 1drop trigger cfq
drop table a
create table a(a int)
gocreate trigger cfq on a
instead of insert
asif @@rowcount=0 returnif exists(select 1 from a,inserted b where a.a=b.a and a.a is not NULL)
begin
raiserror('存在相同记录!',16,1)
endinsert into a select NULL from inserted where a is NULL
insert into a select * from inserted where a is not NULL and not exists(select 1 from a,inserted b where a.a=b.a)
goinsert into a select 1
select * from a
goinsert into a select NULL
insert into a select 1
insert into a select NULL
insert into a select 2
insert into a select NULL
insert into a select 2
drop trigger cfq
drop table a