Zitat von
mkinzler:
Mich verwirrt das FOR EACH ROW
etwas und die Tatscahe das VID nicht einmalig ist
Ohne das würde der Trigger nur auf Statementebene laufen. Also nur einmal für ein Update oder Insert, selbst wenn diese 100 Records ändern würden.
Zitat von
mkinzler:
Es wird allerdings ein Insert-Trigger verwendet, der nicht auf Null prüft, also für jeden DS gelten sollte
Ist in Oracle normal. Ora hat seit Ewigkeiten eine "Returning" clause, manuelles Sequence-Gefriemel ist also seit jeher unnötig.
@Shark, was ergibt diese Abfrage? Hast du mehr als einen Trigger?
SQL-Code:
SELECT Owner
,Trigger_Name
FROM All_Triggers
WHERE Table_Owner = User
and Table_Name = 'TABLETEST'
Hiermit könntest du alle anderen Trigger löschen:
SQL-Code:
begin
for this in (SELECT Owner
,Trigger_Name
FROM All_Triggers
WHERE Table_Owner = User
and Table_Name = 'TABLETEST'
and not (Owner = Table_Owner
and Trigger_Name = 'TRIGTEST')) loop
execute immediate 'drop trigger "' || this.Owner || '"."' || this.Trigger_Name || '"';
end loop;
end;