TSQL-trigger erstellen fehl

Habe ich einige code, der in einem after insert-trigger, die möglicherweise fehlschlagen. Ein solcher Fehler ist nicht entscheidend und sollte nicht rollback der Transaktion. Wie kann ich den Fehler abfangen innerhalb der trigger-und der rest der Transaktion ordnungsgemäß ausgeführt?

Das Beispiel unten zeigt, was ich meine. Der trigger absichtlich erzeugt eine Fehlerbedingung mit dem Ergebnis, dass die original-insert ( "1" ) nie Einfügungen in die Tabelle. Try/Catch hat nicht scheinen, um den trick zu tun. Eine ähnliche, ältere stack overflow Frage nicht Ertrag eine Antwort außer "verhindern, dass die Fehler auftreten in den ersten Platz" - das ist nicht immer möglich/einfach ist.

Irgendwelche anderen Ideen?

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 );
  • Warum Try/Catch nicht funktioniert?
  • da Verstöße gegen die Vorgaben innerhalb der Trigger doom der Transaktionen.
InformationsquelleAutor BuschnicK | 2010-01-29
Schreibe einen Kommentar