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
"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
Please also mark the comments that contributed to the solution of the article
Content-Key: 187072
Url: https://administrator.de/contentid/187072
Printed on: April 26, 2024 at 03:04 o'clock
12 Comments
Latest comment
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.