트리거가 인 경우 삽입인데 오류가 발생하여 삽입을 중지해야합니다.SQL Server : 트리거에서 INSERT 중지
RAISERROR
오류 메시지가 표시되지만 동작 거래없이 다른 방법 을 중단 할 수있는 방법이있다 것인가?
트리거가 인 경우 삽입인데 오류가 발생하여 삽입을 중지해야합니다.SQL Server : 트리거에서 INSERT 중지
RAISERROR
오류 메시지가 표시되지만 동작 거래없이 다른 방법 을 중단 할 수있는 방법이있다 것인가?
방아쇠를 잘못 놓았습니다.
대신 제어 할 수있는 INSTEAD OF 트리거가 필요합니다 (말장난 없음). A 삽입 삽입 후 트리거가 발생하므로 말은 오래 고정됩니다.
'AFTER INSERT'는 아무 것도 말하지 않고 ... 대신 INSTEAD OF 솔루션을 트리거합니다. –
AFTER INSERT 트리거에서 에러 케이스에서 트랜잭션을 항상 롤백 할 수 있으므로 INSERT를 취소 할 수 있습니다. –
@marc_s : FOR INSERT 트리거에서 오랫동안 볼트를 사용하는 말의 개념에 대해서만 숙고했습니다. (INSERT INSERT)에 관한 말 (말)에 대해 말할 수 있습니다. SQL Server에서 동일한 종류의 방아쇠임을 알게되었습니다. 필자는 'AFTER INSERT'구문을 사용한 적이 한번도 없었고, FOR INSERT 만 사용한 적이 있습니다. 이전에 들어 봤지만 항상 다른 개념이라고 생각했습니다. (즉, AFTER INSERT 문에서 작업을 취소 할 수 없었습니다. 방아쇠). 음, 배우기에는 너무 늦지 않았습니다. –
적절한 방법은 트랜잭션을 사용하고 오류 케이스에서 'ROLLBACK TRANSACTION'을 실행하는 것입니다. 실제로 트리거 안의 INSERT를 "중지"하는 다른 방법은 없습니다 ... –
if 인스턴트 메시징 내부에 tranasction가있는 값은 이미 삽입 된 테이블에 있고 이미 테이블 r8에 삽입되어 있습니까? – Sudantha