真的可以,亲测了。 use test create table t1(id int,val varchar(10)) create table t2(id int,val varchar(10),check(id>10)) go create trigger tr_test on t1 after insert as begin insert into t2 select id,val from inserted if @@error>0 rollback tran end go insert into t1 values(1,'tgq') go select * from t1 select * from t2 drop table t1 drop table t2
.... ........ insert into B表 select id,val from inserted if @@error>0 rollback tran return ............
http://www.sdau.edu.cn/support/aspjc/part12/12-3-4.cfm.htm
一般不会在触发器中建立数据异常机制,因为这个会引起很多麻烦,比如会过滤掉很多你需要的错误信息。你可以在触发器中,在插入b表的时候,先作判断。
use test
create table t1(id int,val varchar(10))
create table t2(id int,val varchar(10),check(id>10))
go
create trigger tr_test on t1
after insert
as begin
insert into t2
select id,val from inserted
if @@error>0
rollback tran
end
go
insert into t1 values(1,'tgq')
go
select * from t1
select * from t2
drop table t1
drop table t2
........
insert into B表
select id,val from inserted
if @@error>0
rollback tran
return
............