deni87991
23-08-06, 10:23
Hallo Forum!!
Ich wendet mich heute mit einer Trigger-frage an euch:
Wir wollten einen BEFORE-INSERT-Trigger erstellen, welcher vor dem Einfügen neuer Daten in die Tabelle AUFTRAG nachschaut, ob die neu eingefügten Daten der Spalte "KUNDENNUMMER" in der Spalte "KUNDENNUMMER" in Tabelle KUNDE zu finden ist (schön wäre eine Fehlermeldung, das dieser Kunde noch nicht angelegt ist, aber mit Print '' geht das anscheinend nicht).
Ist diese Kundennummer also noch nicht angelegt, so soll in eine neue Spalte "MENGE" der Wert "XXXXX" eingegeben werden - und das natürlich bei jedem zutreffenden Datensatz.
Unten sind 2 Versionen, mit denen wir es probiert haben - beide gehen aber leider nicht. Es kommen verschiedene Fehlermeldungen, meist, weil ein Befehl jetzt nicht erwartet wurde, wird er jedoch verändert oder gelösche, entsteht der nächste Fehler...irgendwie kommen wir nicht weiter...wäre schön,wenn uns wer helfen könnt.
create trigger Test.Test1 before insert on Test.auftrag
referencing new as new_row
for each row
select * from Test.kunde
where Test.kunde.kundennummer = new_row.kundennummer
begin
SET NEW_ROW.Menge = 'XXXXX';
end
*******************************
create trigger test.Test1 before insert on test.auftrag
referencing new as new_row
for each row
if
((select count(*) from test.kunde
where test.kunde.kundennummer = new_row.kundennummer) > 0)
then
SET NEW_ROW.Menge = 'XXXXX';
Ich wendet mich heute mit einer Trigger-frage an euch:
Wir wollten einen BEFORE-INSERT-Trigger erstellen, welcher vor dem Einfügen neuer Daten in die Tabelle AUFTRAG nachschaut, ob die neu eingefügten Daten der Spalte "KUNDENNUMMER" in der Spalte "KUNDENNUMMER" in Tabelle KUNDE zu finden ist (schön wäre eine Fehlermeldung, das dieser Kunde noch nicht angelegt ist, aber mit Print '' geht das anscheinend nicht).
Ist diese Kundennummer also noch nicht angelegt, so soll in eine neue Spalte "MENGE" der Wert "XXXXX" eingegeben werden - und das natürlich bei jedem zutreffenden Datensatz.
Unten sind 2 Versionen, mit denen wir es probiert haben - beide gehen aber leider nicht. Es kommen verschiedene Fehlermeldungen, meist, weil ein Befehl jetzt nicht erwartet wurde, wird er jedoch verändert oder gelösche, entsteht der nächste Fehler...irgendwie kommen wir nicht weiter...wäre schön,wenn uns wer helfen könnt.
create trigger Test.Test1 before insert on Test.auftrag
referencing new as new_row
for each row
select * from Test.kunde
where Test.kunde.kundennummer = new_row.kundennummer
begin
SET NEW_ROW.Menge = 'XXXXX';
end
*******************************
create trigger test.Test1 before insert on test.auftrag
referencing new as new_row
for each row
if
((select count(*) from test.kunde
where test.kunde.kundennummer = new_row.kundennummer) > 0)
then
SET NEW_ROW.Menge = 'XXXXX';