Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

MSSQL automatische Berechnung von Spalten mit Trigger

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Tschulz, 25 Juni 2012.

  1. Tschulz

    Tschulz Neuer Benutzer

    Hallo!
    Ich habe folgendes Problem:
    Ich habe 2 Tabellen Schule und Score (siehe Anhang). Die gelben Spalten sollen nach der Eingabe von Werten in die weißen Spalten automatisch berechnet werden.
    Tag: Beginn am 24.06.2012, Wochenenden werden nicht gezählt
    Total: Vormittag + Nachmittag + Total des Vortags der jeweiligen Schule (kumulativ)
    Prozent: Total / (AnzahlSchueler * Tag) * 100

    Meine Fragen:
    - Hat jemand eine Idee wie ich die Tage automatisch berechnen kann?
    - Ich habe versucht die Spalten Total und Prozent mit Hilfe von Trigger zu lösen. Bis jetzt habe ich aber nur mit Trigger in PostgreSQL gearbeitet und ich bekomme es irgendwie nicht hin. Entweder der Trigger wird nicht ausgelöst oder es erscheint eine Fehlermeldung, dass ich das Primary Key Constraint verletzt habe. Ich möchte jedoch an meinen Primary Key (Datum+Schule) gar nichts ändern. Kann mir jemand verraten welche Art von Trigger ich benutzen soll für meinen Zweck?

    Vielen Dank für eure Hilfe!!
     

    Anhänge:

  2. PLSQL_SQL

    PLSQL_SQL Datenbank-Guru

    Hier würdest du einen "AFTER INSERT" Trigger benötigen.

    Jedoch glaube ich, dass du nicht in der selben Tabelle, in welcher du gerade insertest ein Update mittels Trigger auf den gleichen Datensatz machen kannst.

    Lässt sich dies nicht bei der Erfassung des Datensatzes mit inserten?

    Lg
     
  3. ukulele

    ukulele Datenbank-Guru

    Du hast im wesentlichen 4 Möglichkeiten:
    1) Den Wert beim schreiben in die DB berechnen und mit übergeben (vermutlich am einfachsten)
    2) Berechnete Spalten (Habe ich noch nie genutzt, funktioniert wohl auch nur bedingt. In einem anderen Thread "Bachelorarbeit" ging es auch grade darum.)
    3) Eine View, die die zusätzlichen Spalten berechnet (mein Favorit)
    4) Trigger (Sehr mächtig, muss aber auch immer auslösen wenn einer der zugrunde liegenden Werte geändert / gelöscht wird. Kann also mitunter bei mehreren Tabellen notwendig sein.)

    Bei einem Trigger ist AFTER INSERT UPDATE die richtige Wahl. Am besten den Trigger Code hier mal posten. Der kann auch die grade eingefügte Spalte ergänzen.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden