1
Ich versuche, einen Trigger zu erstellen, der eine Spalte für die zu aktualisierende Zeile auffüllen würde. Hier ist was ich getan habe, aber es funktioniert nicht:Erstellen eines Auslösers zum Aktualisieren
CREATE TRIGGER PSL_Cases_Address
ON dbo.PSL_Cases
AFTER INSERT, UPDATE
AS
BEGIN
IF UPDATE(Permit_No) /*If column not affected skip*/
BEGIN
UPDATE psl_cases
SET address = (
SELECT TOP 1 permits.address
FROM permits
LEFT OUTER JOIN PSL_Cases ON PSL_Cases.Permit_No=Permits.PermitsID
WHERE PSL_Cases.PSL_CasesID=PSL_CasesID
)
WHERE dbo.PSL_Cases.PSL_CasesID = PSL_CasesID;
END
END;
Irgendwelche Ideen, was ich falsch machen könnte?
Wenn Auftrag von nicht vorhanden ist, werden Sie nicht results..use, um durch sie deterministisch machen gewünscht erhalten – TheGameiswar
Ein SQL Server-Trigger wird einmal für jede genannt update oder Insert-Anweisung, und die Tabellen _inserted_ und _updated_ werden für Sie ausgefüllt. Dies ist anders als beispielsweise bei Firebird, wo der Triggercode einmal für jeden Datensatz aufgerufen wird, der aktualisiert oder eingefügt wurde. Ihr SQL Server-Triggercode muss für die Arbeit mit den Tabellen _inserted_ und _updated_ erstellt werden. – nolaspeaker
@nolaspeaker: Die Pseudo-Tabellen sind * eingefügt * und * Gelöscht * - es gibt keine * Aktualisiert * ... –