Announcement

Collapse
No announcement yet.

Problem mit einem Trigger (count Befehl)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit einem Trigger (count Befehl)

    Hallo ich bin gerade dabei mich mit der Thematik Trigger zu beschäftigen und haben diesen Trigger hier geschrieben:


    Code:

    Code:
    ALTER TRIGGER freimachenBS
    ON dbo.fachdetail
    after UPDATE  
    AS
    
    DECLARE @FACHID as int 
    
    SET @FACHID = (SELECT Fachid  FROM inserted)
    IF (SELECT count(*)  FROM fachdetail WHERE FACHID = @FACHID AND  auftrag_erledigt = 0) = 0 BEGIN
     UPDATE dbo.fachdefi SET belegstatus = 0 WHERE ID = @FACHID
    END
    allerdings bekomme ich die Fehler meldung das wenn ein =/</.././... vorhanden ist das ich dann nicht mehrere Ergebnise bekommen darf.


    Uploaded with ImageShack.us

    Kann mir einer sagen wo der Fehler liegt? Ich vermute mal da ich das count noch nicht richtig verstanden habe.
    Erreichen möchte ich hiermit das ich die Fachid aus der Tabelle fachdetail mit den Fachid's vergleiche und sofern kein Eintrag vorhanden ist soll er in der tabelle fachdefi den Eintrag belegstatus auf 0 setzen an der Stelle wo die ID = die der Fachid ist.

  • #2
    Du weißt aber schon, dass der SQL-Server den Trigger immer nur je Statement und nicht je Record aufruft? Wenn nämlich dein Update mehrere Datensätze mit unterschiedlicher FachID betrifft, geht's so nicht mehr.
    Daher glaube ich, das der Fehler beim
    SET @FACHID = (SELECT Fachid FROM inserted)
    auftritt, wie soll man auch verschiedene Werte gleichzeitig in ein und dieselbe Variable stopfen?

    bye,
    Helmut

    [edit] die FachID's müssen nicht mal unterschiedlich sein, ein Update, das mehr als einen Record betrifft reicht bereits um den Fehler auszulösen ...

    Comment


    • #3
      erstmals danke für den Hinweiß wusste ich noch nicht, Arbeite gerade zum ersten mal mit einem Trigger, kann ich den innerhalb der inserted Tabelle einfach mit WHERE ID = 1 sicherstellen das ich den richtigen eintrag bekomme?

      Comment


      • #4
        Nachdem ist nicht weiß, was der "richtige" Eintrag aus welchen Daten ist, kann ich nichts dazu sagen. Vielleicht verstehen ja andere was du meinst. Aber wenn keine weiteren Antworten kommen, dann geht es dem Rest der Leute wohl so wie mir und du wirst um eine ausführlichere Erklärung mit einem schönen Beispiel nicht herumkommen, falls du eine konkrete Antwort willst. Und fallweise kommt man beim Schreiben derselben sogar selber auf die Lösung. Also probier's einfach nochmal

        bye,
        Helmut

        Comment

        Working...
        X