MSSQL Tabelle bzw.Tupel mit angelegt am, geändert am, angelegt von und geändert von -Attributen versehen
Hallo Comunity!
Ich möchte gern meine Datenbanktabelle mit vier Attributen erweitern:
"angelegt am", "geändert am", "angelegt von" und "geändert von".
Die Authentifizierung erfolgt (noch) nicht über die ActiveDirectory, sondern erstmal nur über den SQL-Server, später soll es eventuell eine Mischform geben.
Wie kann ich das realisieren?
Timestamp ist ja nicht der richtige Ansatz, oder?
Vielen Dank schon mal im Voraus!
Felix
Ich möchte gern meine Datenbanktabelle mit vier Attributen erweitern:
"angelegt am", "geändert am", "angelegt von" und "geändert von".
Die Authentifizierung erfolgt (noch) nicht über die ActiveDirectory, sondern erstmal nur über den SQL-Server, später soll es eventuell eine Mischform geben.
Wie kann ich das realisieren?
Timestamp ist ja nicht der richtige Ansatz, oder?
Vielen Dank schon mal im Voraus!
Felix
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 187072
Url: https://administrator.de/contentid/187072
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
12 Kommentare
Neuester Kommentar
Fürs Update:
Für Insert defaults wie folgt setzen:
"angelegt am" = now()
"angelegt von" = SUSER_SNAME()
CREATE TRIGGER I_Update_Test_Update
ON dbo.datenbank
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE dbo.tabelle t
SET t.modified = now(), t.[modified by] = SUSER_SNAME()
JOIN inserted i
ON t.key = i.key
Für Insert defaults wie folgt setzen:
"angelegt am" = now()
"angelegt von" = SUSER_SNAME()
Okay, Fehler 1 (now) habe ich selber lösen können, ber könntest du mir bitte nochmals beim 2.
Fehler helfen?
Fehler helfen?
Versuchs mal so, hab grad keinen SQL greifbar. Wenns nichts klappt, les mal in der Doku zu UPDATE
[...]
UPDATE t
SET t.modified = [...]
FROM dbo.tabelle t
JOIN inserted i
ON t.key = i.key
[...]
Und was passiert bei dem JOIN eigentlich?
In der Tabelle "inserted" steht der Datensatz der upgedated wurde. => Update nur für den Datensatz der dem Key aus dem geupdateten DS entspricht.