Nach insert -, update-trigger werden nicht ausgeführt
Habe ich zwei Trigger Nach Insert-oder Update-und Anstelle von Einfügen. Es scheint, dass der after-trigger wird nicht ausgeführt oder die richtigen Daten sendet.
Habe ich überprüft den ordnungsgemäßen Betrieb des Z_UpdateStageTable gespeicherte Prozedur und die Instead of Insert-trigger. Entfernen der Instead of Insert-trigger keine Auswirkungen. Der After Insert -, Update-trigger war richtig funktioniert auf einmal, ich habe keine änderungen vorgenommen, um es. Ich habe versucht es zu löschen und hinzufügen, aber es noch nicht läuft, oder die richtigen Daten.
Irgendwelche Ideen?
Instead of Insert:
ALTER TRIGGER [DeleteExistingFilter]
ON [dbo].[Z_MobileSyncFilters]
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
DELETE FROM Z_MobileSyncFilters WHERE UserID = (SELECT UserID FROM INSERTED);
INSERT INTO Z_MobileSyncFilters
SELECT *
FROM INSERTED;
END
After Insert, Update:
TRIGGER [UpdateStageTable]
ON [dbo].[Z_MobileSyncFilters]
AFTER INSERT,UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @AllWos AS VARCHAR(5000);
DECLARE @PmWos AS VARCHAR(5000);
DECLARE @RepWos AS VARCHAR(5000);
SET @AllWos = (SELECT AllWos FROM INSERTED);
SET @RepWos = (SELECT AllWos FROM INSERTED);
SET @PmWos = (SELECT AllWos FROM INSERTED);
EXEC Z_UpdateStageTable @AllWos;
EXEC Z_UpdateStageTable @RepWos;
EXEC Z_UpdateStageTable @PmWos;
END
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es ein Tippfehler in der
SET
Teil derAFTER
auslösen? Wählen Sie die gleiche Sache in drei verschiedene Variablen.Eher als Bestätigung des Verhaltens der
Z_UpdateStageTable
ich würde versuchen, ersetzen Sie es mit etwas Schmutz einfach (eine parameterlose sql-Anweisung, sagen), um zu testen, ob der trigger aufgerufen wird. Es ist möglich, dass die sproc ' s nicht genannt wird, mit dem, was Sie denken, es wird aufgerufen mit.Halten Sie auf eine Sekunde, wenn die userid ist Ihre PK dann Z_MobileSyncFilters nicht über Daten verfügen, doch ist dies auch ein instead of-trigger
diese wholw blockieren tut nichts wirklich, warum brauchen Sie diese trigger?
Euch, die zweite Auslöser ist fehlerhaft, weil es faile, wenn Sie ein multi-row-operation
warum hast du 2 insert-trigger (1 statt 1 nach) auf diese Tabelle?
Können Sie hinzufügen
PRINT
Aussagen zum Auslöser und manuell einfügen aus ManagementStudio/Enterprise Manager, um zu sehen, wo der trigger nicht.Sehe ich ein problem beim einfügen mehrerer Datensätze in einer einzigen Anweisung, wie die
SELECT FROM Inserted
zurückkehren wird, mehr als 1 Datensatz.Können Sie das update auch die
SET
AnweisungSELECT @Var = AllWos FROM Inserted