Announcement

Collapse
No announcement yet.

Über Trigger auf andere DB zugreifen

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

  • Über Trigger auf andere DB zugreifen

    Hallo, ich habe eine Frage:
    In meiner Firma arbeiten wir mit zwei Datenbanken in SQL Server: einer alten und einer für eine neue Software angelegte. Nun haben wir in beiden Datenbanken eine Tabelle für Personal. Meine Aufgabe besteht nun darin, einen Eintrag neuen Personals in der einen DB über einen Trigger auch in die andere DB zu übertragen. Bisher aber funktioniert der Zugriff auf die andere Datenbank nicht unmittelbar aus dem Trigger heraus. Gibt es da irgendwelche Möglichkeiten?

    Vielen Dank schonmal für die Antwort!

  • #2
    Hallo,

    Also ich füge mir andere SQL Server hinzu, indem ich im Management Studio unter Serverobjekte -> Verbindungsserver mit den jeweiligen Server hinzufüge.

    Und dann kann ich die entsprechenden Abfragen basteln und z.B. Datensätze von der einen Tabell (SQL-Server01) in die andere Tabelle (SQL-Server02) kopieren. Mittels Trigger.


    Ich hoffe das ist das, was du meinst.


    mfg

    Seby

    Comment


    • #3
      Danke für die prompte Antwort. Unsere DBs liegen zwar beide auf demselben Server, aber es gibt dann wohl prinzipiell die Möglichkeit, mittels Trigger in eine andere DB zu schreiben, wenn ich Dich richtig verstehe. Einer unserer Informatiker hatte das bezweifelt, da so wohl die eine DB von der Erreichbarkeit der anderen DB abhängig gemacht würde (er meinte, bei Oracle ginge das definitiv nicht).

      Comment


      • #4
        So unrecht hat der Informatiker da wohl nicht. Was soll denn der Trigger machen, wenn die andere Datenbank gerade nicht erreichbar ist? Im besten Fall erfolgt ein Rollback und die Anlage eines neuen Mitarbeiters geht dann einfach nicht. Ich würde hier eher eine Zwischentabelle am gleichen Server verwenden, in die der Trigger reinschreibt, und der andere Server schaut intervallmäßig darin nach, ob es was Neues gibt. Selbst wenn er das im 5-Sekunden-Abstand machen würde, glaube ich nicht, dass es dadurch zu einer spürbaren Mehrbelastung von Server oder Netzwerk kommt.

        bye,
        Helmut

        Comment


        • #5
          Hallo,

          Meine Aufgabe besteht nun darin, einen Eintrag neuen Personals in der einen DB über einen Trigger auch in die andere DB zu übertragen.
          Wenn ein INSTEAD OF-Trigger verwendet wird, kann dieser die Aktualisierung in der anderen Datenbank vornehmen. Im FORUM hatte ich dazu vor einiger Zeit auf eine ähnliche Frage das folgende Beispiele gepostet:

          Code:
          CREATE TRIGGER trTblUPDATE 
            ON dbo.Tbl
            INSTEAD OF UPDATE 
          AS
            -- Tabelle in der 1. Datenbank aktualisieren
            UPDATE dbo.Tbl SET 
              wert = i.wert 
            FROM 
              dbo.Tbl z JOIN Inserted i ON z.cID = i.cID 
            WHERE
              z.wert <> i.wert;
            -- Tabelle in der 2. Datenbank aktualisieren
            IF (SELECT COUNT(*) 
                FROM ForumTrigger2.dbo.Tbl z 
                  JOIN Inserted i ON z.cID = i.cID 
                WHERE z.wert <> i.wert) > 0
              BEGIN
                UPDATE ForumTrigger2.dbo.Tbl SET 
                  wert = i.wert 
                FROM 
                  ForumTrigger2.dbo.Tbl z 
                   JOIN Inserted i ON z.cID = i.cID 
                WHERE
                  z.wert <> i.wert;
              END
          GO
          Einer unserer Informatiker hatte das bezweifelt, da so wohl die eine DB von der Erreichbarkeit der anderen DB abhängig gemacht würde ...
          Auch eine SELECT-Abfrage darf über einen JOIN auf Tabellen aus verschiedenen Datenbanken zugreifen, die sogar auf verschiedenen Maschinen liegen dürfen. Aus diesem Grund würde es keinen Sinn machen, für einen Trigger strengere Regeln aufzustellen.
          Zuletzt editiert von Andreas Kosch; 23.07.2007, 07:41.

          Comment

          Working...
          X