Hallo zusammen,
ich möchte einen Trigger erzeugen der folgendes macht:
Ich habe eine Spalte dDatum, dUser und dWorkstation.
1. Wenn in der Spalte dDatum etwas eingetragen wird, soll diese nicht überschrieben werden. Es soll aber dUser und dWorkstation automatisch eingetragen werden.
2. Wenn in der Spalte dDatum nichts eingetragen wird, sollen alle drei Spalten automatisch gefüllt werden.
Mein Ansatz sieht wie folgt aus:
Der Trigger funktioniert zwar, aber ich bin mir nicht sicher ob das so Sinnvoll ist. Vielleicht hat jemand eine Idee wie man das besser macht....
...wenn es nur so geht, wäre es ebenfalls toll wenn ihr mich das wissen lasst....
Danke
ich möchte einen Trigger erzeugen der folgendes macht:
Ich habe eine Spalte dDatum, dUser und dWorkstation.
1. Wenn in der Spalte dDatum etwas eingetragen wird, soll diese nicht überschrieben werden. Es soll aber dUser und dWorkstation automatisch eingetragen werden.
2. Wenn in der Spalte dDatum nichts eingetragen wird, sollen alle drei Spalten automatisch gefüllt werden.
Mein Ansatz sieht wie folgt aus:
Code:
CREATE TRIGGER trg_Insert_UpdateTest ON dbo.Test After INSERT, UPDATE AS DECLARE @UpdateDatum BIT SET @UpdateDatum = 0 SET TRANSACTION Isolation LEVEL READ Committed BEGIN TRAN BEGIN SET NoCount ON SELECT IDD FROM Test WHERE IDD IN (SELECT IDD FROM inserted)AND dDatum IS NOT NULL IF @@ROWCOUNT > 0 SET @UpdateDatum = 1 IF @UpdateDatum = 0 BEGIN UPDATE Test SET dDatum = GETDATE(), dUser = SUSER_SNAME(), dWorkstation = HOST_NAME() WHERE IDD IN (SELECT IDD FROM inserted) END IF @UpdateDatum = 1 BEGIN UPDATE Test SET dUser = SUSER_SNAME(), dWorkstation = HOST_NAME() WHERE IDD IN (SELECT IDD FROM inserted)-- AND dDatum is Not Null END SET nocount OFF END IF @@ERROR <> 0 ROLLBACK TRAN ELSE COMMIT TRAN
...wenn es nur so geht, wäre es ebenfalls toll wenn ihr mich das wissen lasst....
Danke
Comment