Supportnet / Forum / Datenbanken
SQL Server Tabellen autom. aktualisieren
Frage
Ich hab da mal ´ne ganz blöde Frage:
Ich habe auf einem MS SQL 2000 Server eine Tabelle mit 10 Spalten und noch eine weitere mit 15 Spalten.
Nun möchte ich den Inhalt der 10-spältigen autom. in die 15-spältige übergeben, sobald sich etwas ändert.
Also wird in der ersten Tabelle ("10er") ein Feld geändert, soll dieser Datensatz autom. in die zweite Tabele geschreiben/aktualisiert werden.
Bin über eine Funktion Trigger gestolpert, hab aber nix gepeilt...
andre
P.S. Ich weiss eigentlich ist es Käse die sleben Daten doppelt vorzuhalten, aber das Problem ist, das ich die erste Tabelle (die mit 10 Spalten) nicht um 5 erweitern darf. Daher dieser Zirkus...
Antwort 1 von OmaDuck
Hallo Andre,
Trigger ist genau richtig. Habe aber leider keine Ahnung von Sql Server. In Oracle kannst Du im trigger mit sql die updates vornehmen.
on insert or update tabelle1; insert or update tabelle2
gruß
OmaDuck
Trigger ist genau richtig. Habe aber leider keine Ahnung von Sql Server. In Oracle kannst Du im trigger mit sql die updates vornehmen.
on insert or update tabelle1; insert or update tabelle2
gruß
OmaDuck
Antwort 2 von firefox
Die Trigger Unterscheiden sich doch arg bei Oracle und SQL Server ...
Auf jeden Fall brauchst du einen Trigger der bei Aktualisierung arbeitet, d.h. in deinem Fall UPDATE. Zum Beispiel so:
Hinweis: Bei Triggern greifen beim SQL Server 2 Tabellen, einmal gibt es die Systemtabelle inserted und deleted diese Tabellen sind immer ein Abbild der Tabelle des Triggers.
Bei UPDATE würde in inserted die Werte der nach dem Update stehen, deleted beinhaltet die Werte vor dem Update.
Aber Anhand der Onlinehilfe und Google solltest du zum Ziel kommen.
Auf jeden Fall brauchst du einen Trigger der bei Aktualisierung arbeitet, d.h. in deinem Fall UPDATE. Zum Beispiel so:
CREATE TRIGGER Trigger1
ON Tabelle1
FOR UPDATE -- hier wird definiert wann der Trigger greift. Am besten mal die Onlinehilfe durchstöbern
AS
UPDTAE Tabelle1 set wert = (select wert from inserted where id = tabell1.id)
Hinweis: Bei Triggern greifen beim SQL Server 2 Tabellen, einmal gibt es die Systemtabelle inserted und deleted diese Tabellen sind immer ein Abbild der Tabelle des Triggers.
Bei UPDATE würde in inserted die Werte der nach dem Update stehen, deleted beinhaltet die Werte vor dem Update.
Aber Anhand der Onlinehilfe und Google solltest du zum Ziel kommen.

