SQL Server Management - Hilfe benötigt!

  • 1 Antworten
  • Letztes Antwortdatum
Maki.

Maki.

Ehrenmitglied
957
Hallo Leute!

Aufgrund meiner Diplomarbeit an meiner Schule müssen wir unter anderen auch Server-Programmierung durchführen. Ich habe für den Anfang eine "kleine und leichte" Aufgabe einen Trigger on Update zu erstellen. Jedoch habe ich keinerlei Erfahrung mit SQL Server Management. Möglicherweise kann mir der ein oder andere doch helfen. ;)

Also zur Info:
habe aus rechtlichen Gründen den Namen des Servers und die Tables zensiert. Die Aufgabe besteht darin, dass jedesmal wenn ein Eintrag auf LLUserInfo erfolgt ein Zeitstempel auf Updated eingetragen wird. Ich muss somit ein Feld "Updated" erstellen (für den Zeitstempel) und mit "Create new Trigger" oder so einen Trigger on Update erstellen. Da das Hinzufügen von einen TRigger nicht klappt (ist ausgeblendet :confused2: ) muss ich das per HAnd (also mit Code) machen.

Bild 3.png

Also hat jemand Lust auf einen Kaffee oder ein Bier und Zeit mir zu helfen? :flapper:
Danke vorab! ;)
 
Du brauchst auch keine Erfahrungen im Management Studio, sondern nur in (T-)SQL :smile:


Für die Spalte Updated, gleich mit Standardwert für neue Datensätze (spart einen INSERT-Trigger)
Code:
ALTER TABLE LLUserInfo ADD Updated datetime2 DEFAULT getdate()
GO

Trigger (die Spalte[n] des Primary Key musst du noch im WHERE ergänzen)
Code:
CREATE TRIGGER trigger_LLUserInfoUpdated
  ON LLUserInfo AFTER UPDATE
AS
BEGIN
  SET NOCOUNT ON;
  UPDATE LLUserInfo 
    SET Updated = getdate() 
    FROM inserted 
    WHERE LLUserInfo.<PrimaryKey> = inserted.<PrimaryKey>;
END


EDIT: Wenn du das so umsetzt, stelle bitte sicher, dass RECURSIVE_TRIGGERS in der Datenbank nicht aktiviert sind (ist normalerweise deaktiviert). Sonst würde das Update im Trigger wieder den Trigger auslösen und das ganze endet in einer Endlosschleife. Das kann man natürlich verhindern, aber macht es etwas komplizierter.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Maki.

Ähnliche Themen

maxsid
Antworten
27
Aufrufe
645
Wähler
W
C
Antworten
37
Aufrufe
870
592357
5
Zurück
Oben Unten