잠재적으로 실패 할 수있는 삽입 트리거에 일부 코드가 있습니다. 이러한 실패는 중요하지 않으며 이 아니고은 트랜잭션을 롤백해야합니다. 트리거 내에서 오류를 트랩하고 나머지 트랜잭션을 정상적으로 실행하려면 어떻게해야합니까?TSQL 트리거가 자동으로 실패 함
아래의 예는 내 뜻을 보여줍니다. 트리거는 의도적으로 원본 삽입 ("1")이 테이블에 삽입되지 않는 결과로 오류 조건을 만듭니다. Try/Catch는 트릭을 수행하지 않은 것 같습니다. 비슷하게 older stack overflow question은 "처음에 오류가 발생하는 것을 방지"하는 것 이외에는 답을 얻지 못했습니다. 항상 가능하거나 쉽지는 않습니다.
다른 아이디어?
create table test
(
a int not null
);
go
create trigger testTrigger on test
after insert as
begin
insert into test select null;
end;
go
insert into test values (1);
왜 시도 했는가?/캐치가 작동하지 않습니까? – cjk
@ck : 트리거 내부의 제약 조건 위반으로 인해 트랜잭션이 파손되기 때문입니다. – Quassnoi