Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: SELECT-Statement innerhalb eines Triggers

  Alt 29. Sep 2006, 01:28
Was ist das :

Zitat von EnORItZ:
Hallo Leute.

Ich versuche gerade in meiner Rechnungsdaten-Tabelle doppelte eingaben eines Artikels zu vermeiden.

Die Tabelle sieht quasi so aus:
SQL-Code:
create table Rechnungen(
   RechnungsID   Integer,
   KundenID   Integer,
   Datum      Date
);

create table RechnungsDaten(
   RechnungsID   Integer,
   AusleihID   Integer
);
Ist RechnungsID quasi die ID des Datensatzes der Table ? Hängen die Tabellen voneinander ab ? Falls ja : wo ist dann der Verweis von einer Tabelle auf die andere ? Gehe doch systematischer vor : vergeb zunächst mal eine ID, egal für welche Tabelle. Hängt die Tabelle von einer anderenn ab, dann kriegt die eben noch eine die für den Verweis zuständig ist. Glaskugel meint so etwas :

SQL-Code:
create table Rechnungen(
   ID   Integer,
         RECHNNR integer,
   KundenID   Integer,
   Datum      Date
);

create table RechnungsDaten(
   ID   Integer,
         ID_Rechnungen integer, /* erhält Wert von der ID aus table Rechnungen  */
   AusleihID   Integer
);
Den Rest hat mkinzler schon gesagt : im Prinzip wird Schadenswiedergutmachung versucht. So was lässt man aber besser von Anfang an nicht zu. Was soll aber nun gemacht werden, falls das Programm versucht, einen Datensatz einzutragen, der schon da ist ? Ich würde vorab mal sagen, daß ein Trigger der falsche Ansatz ist und das besser in einer SP aufgehoben wäre. Trigger sind gut für automatische Sachen, wie ID-Vergabe, Vorbesetzung oder automatische Änderung von Feldern. Ansonsten kann er das Programm aus den Angeln heben, denn er lauert im Hintergrund und schlägt ohne Warnung zu, sofern eine Bedingung erfüllt ist. Eine SP kann ich gesteuert aus dem eigenen Programm aus aufrufen.
Gruß
Hansa
  Mit Zitat antworten Zitat