[FIXED] So füllen Sie ein anderes Feld mit Daten, die eingefügt werden

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)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like