Ich habe eine Tabelle namens ClientInfo, die persönliche Informationen eines Clients speichert und eine andere Tabelle namens EmergencyContactInfo, die ihre Notfallkontaktinformationen speichert. Im Moment habe ich einen Update-Trigger in meiner ClientInfo-Tabelle, der einen einzelnen Datensatz in eine dritte Tabelle namens ClientLog einfügt, wenn sich eine ihrer persönlichen Informationen ändert. Ich möchte auch einen ClientLog-Datensatz erstellen, wenn sich die Notfallkontaktinformationen des Kunden ändern.Wie verhindern Sie, dass zwei Trigger auf separaten Tabellen gleichzeitig ausgelöst werden?
Das Problem ist, dass der Benutzer sowohl persönlich als ein Client-Informationen und Kontaktinformationen ihres Notfall mit einem einzigen speichern von meiner Homepage ändern. Wenn ich einen Aktualisierungstrigger auf meine EmergencyContact-Tabelle lege, werden beide Trigger ausgelöst und die ClientLog-Tabelle fügt zwei neue Datensätze ein, wenn ich nur einen möchte.
Von dem, was ich verstehe, gibt es nicht so etwas wie ein Update-Trigger, die über mehrere Tabellen erstreckt. Was wäre ein alternativer Ansatz, den ich verwenden könnte, der einen einzigen Datensatz einfügen würde, wenn sich sowohl die persönlichen Informationen des Kunden als auch seine Notfallkontaktinformationen ändern?
Erkalten Sie einfach die Überwachung in die Prozedur, die das Update durchführt, anstatt einen Trigger zu verwenden? –
"Wenn ich einen Aktualisierungstrigger in meine EmergencyContact-Tabelle lege, werden beide Trigger ausgelöst und die ClientLog-Tabelle fügt zwei neue Datensätze ein, wenn ich nur einen möchte." Warum würden Sie das wollen? Es erscheint mir * völlig * sinnvoll, zwei Platten zu schreiben. Was schreiben Sie in ClientLog? – aquinas
Mögliche Option mit Context_Info. https://stackoverflow.com/questions/174600/is-there-a-way-to-disable-a-sql-server-trigger-for-just-a-particular-scope-of-ex –