Einzelnen Beitrag anzeigen

urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#15

Re: Stored Procedure ignoriert DEFAULT

  Alt 29. Dez 2004, 11:58
Zitat von Hansa:
Wo liegt in diesem Fall der wesentliche Unterschied zwischen Trigger und storede Procedure ? Ein Trigger ist doch auch nichts anderes, als eine spezielle stored Procedure, oder ?

Der Trigger sieht so aus :

SQL-Code:
AS
begin
  IF (NEW.ID IS NULL) THEN /* Generatorwert lesen und erhöhen */ 
    NEW.ID = GEN_ID(GEN_DATEN_ID, 1);
  IF (NEW.angelegt is NULL) THEN /* Anlegedatum festhalten */
    NEW.ANGELEGT = current_timestamp;
  IF (NEW.FELD is NULL) THEN /* wegen stored procedure und default */
    NEW.FELD = 0;
end
FELD ist dabei, das besagte Feld, bei dem es Ärger mit dem Default gab. Wegen des Generators brauche ich den Trigger so oder so. Macht die zusätzliche Zeile Feld = 0 da überhaupt was aus ?
Nein, ich denke nicht, dass der Trigger hier etwas ausmacht.
Zitat von Hansa:
Es gibt noch einen Grund für den Trigger. Normalerweise füge ich Daten über die entsprechende SP ein, aber ich habe auch Fälle, in denen das nicht so ist. Z.B. ein Programm, welches alte Daten in die DB einfügt.
Genau das ist der Grund, weshalb ich dafür plädiere, die Abfrage im Trigger zu machen. Der Trigger ist die Instanz, die direkt auf Tabellenebene dafür sorgen kann, dass keine unerlaubten Daten eingetragen werden. Alles andere kann durch andere Wege (andere Programme oder sogar Programmierer) umgangen werden.

Grüße
Urs
  Mit Zitat antworten Zitat