Multi-Tisch-Trigger SQL Server noob
Ich habe eine Last von Tabellen alle mit den gleichen 2 datetime-Spalten (lastModDate, dateAdded).
Ich Frage mich, ob ich es einrichten können, die globalen Insert-Update-trigger für diese Tabellen festgelegt, die datetime-Werte. Oder wenn nicht, welche Ansätze gibt es?
Alle Zeiger geschätzt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie STANDARDWERTE für die Einsätze (dateAdded) und eine TABELLE der trigger für das UPDATE.
Etwas wie
Ich Stimme zu es gibt keine solche Globalen Trigger, aber wir können sicherlich reduzieren unsere Bemühungen durch die Schaffung script, das erzeugen von Triggern für Tabellen.
Etwas wie: http://weblogs.sqlteam.com/brettk/archive/2006/11/29/35816.aspx
Nein, es gibt keine solche Sache wie eine "global" - trigger oder ein multi-Tisch-Trigger. Trigger werden durch design gebunden zu einer Tabelle, so dass, wenn Sie brauchen, um Trigger für eine Last von Tabellen, die Sie erstellen müssen eine Last von Triggern, eine für jede Tabelle, und installieren Sie Sie. Kein Weg vorbei, fürchte ich.
da der code gleich, und nur der Tabellenname geändert wird...
ich denke, dass beste ist, zu erstellen Prozedur und rufen Sie dann diese Prozedur von jeder trigger
Generieren Trigger für alle Tabellen
Nun, ich habe das ursprünglich zu generieren Trigger für alle Tabellen in einer Datenbank audit-Daten ändert, und das ist einfach genug-bewegen Sie einfach die gesamte Zeile aus der Tabelle gelöscht, um eine gespiegelte audit-Tabelle.
Aber jemand wollte die Spur Aktivität auf den Tischen, so ist es ein wenig einfacher. Hier erstellen wir eine log-Tabelle, und jedes mal, wenn eine dml-operation Auftritt, ist es dort geschrieben.
Genießen