Forum: SQL |
Thema:
Trigger |
Von:
M Merlin (
07.11.2006 14:47) |
Hallo zusammen,
ich möchte einen Trigger bauen, der ein GatDate() über die Spalte Erledigt am macht, aber nur wenn ein Wert in Erledigt eingetragen wird. Des weiteren soll bei allen Änderungen des Datensatzes ein GetDate() über die Spalte einDatum und suser_sname() in einUser erfolgen, außer wenn etwas in die Spalte Erledigt eingetragen wird..
Kann man dies in einem Trigger lösen?
Mein Ansatz wäre:
CREATE TRIGGER trg_Insert_Update_Datum_User_Eingang ON dbo.Eingang
After INSERT, UPDATE
AS
BEGIN
SET NoCount ON
UPDATE Eingang
SET einDatum = GETDATE(), einUser = (host_name() + ' - ' + suser_sname())WHERE IDE IN (SELECT IDE FROM inserted) AND Erledigt = Null
SET ErledigtAm = GETDATE() WHERE IDE IN (SELECT IDE FROM inserted) AND Erledigt Not Null
SET nocount OFF
END;
Ich bekomme aber eine Fehlermeldung... Wo mache ich den Fehler?
Betreff |
Von |
Datum |
|
|
AW: Trigger
Hallo, Merlin,
grundsätzlich nett wäre es, wenn du die Datenbank und die Fehlermeldung angeben würdest. <br>
Grundsätzlich würde ich die beiden Trigger Update und Insert trennen, quasi 2 drauss... |
|
|
|
|
|
Guido
Nachtigall
|
09.11.2006 13:18 |
|
|
OT:Editor
sag mal mit welchem Browser hast du die Antwort geschrieben? ich staune ob der <br> |
|
|
|
|
|
Hannes
Preishuber
|
09.11.2006 16:41 |
|
|
AW: OT:Editor
Firefox :
ich hab hier immer mal Probleme mit dem Zeilenumbruch.
Gibt es da ne Hilfe ?
Gruß
Guido |
|
|
|
|
|
Guido
Nachtigall
|
10.11.2006 11:56 |
|
|
AW: AW: OT:Editor
Ja: http://www.microsoft.com/windows/ie/downloads/default.mspx<br><br>:D |
|
|
|
|
|
Bernhard
Grojer
|
10.11.2006 12:57 |
|
|
Guido
Nachtigall
|
10.11.2006 13:53 |
|
|
AW: Trigger
Hab das Problem selbst gefunden...<br>Mein Trigger sieht jetzt wie folgt aus:<br><br>Alter TRIGGER trg_Insert_Update_Datum_User_Eingang ON dbo.Eingang <br>FOR UPDATE <br>AS <br>BEGIN <br>SET NoCount ON <br><br>IF not... |
|
|
|
|
|
M
Merlin
|
13.11.2006 08:58 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!