Ausgabe
Ich habe eine Tabelle namens “DocumentHeaders”. Es gibt ein Feld, das auf jeder Einlage mit dem Namen „A“ ausgefüllt wird.
Ich möchte ein anderes Feld namens B mit einem Link füllen. Wenn der in Spalte A eingefügte Wert „Giraffe“ lautet, sollte die Struktur des Links „https://google.com/giraffe“ lauten.
Feld ‘C’ muss gleich ‘neu’ sein, damit dieser Trigger ausgeführt wird
Das ist, was ich bisher habe, und es scheint nicht zu funktionieren. Wenn ich eine Zeile einfüge, passiert nichts. Die Zeile wird ganz normal eingefügt, ohne dass Spalte B gefüllt wird
In diese Datenbank wird immer nur eine Zeile auf einmal eingefügt. Ich kann dies auch nicht als Teil der Einfügeabfrage einschließen.
CREATE TRIGGER generate_new_link ON DocumentHeaders
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE DocumentHeaders SET B = CONCAT('https://google.com/', (SELECT A FROM INSERTED))
FROM DocumentHeaders DH
INNER JOIN INSERTED I ON DH.ID = I.ID
WHERE I.C='new' or I.C='New'
SET NOCOUNT OFF;
END
GO
Kann mir jemand eine Anleitung geben, wo ich falsch liege?
Lösung
Das war richtig, aber ich musste ein Update anstelle einer Einfügeabfrage abfangen. Anstelle von After INSERT sollte es also After UPDATE heißen.
Beantwortet von – Ivan
Antwort geprüft von – David Goodson (FixError Volunteer)