Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Datenbanken

GELÖST

MSSQL Tabelle bzw.Tupel mit angelegt am, geändert am, angelegt von und geändert von -Attributen versehen

Mitglied: SWuser

SWuser (Level 1) - Jetzt verbinden

26.06.2012 um 11:50 Uhr, 3495 Aufrufe, 12 Kommentare

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
Mitglied: SlainteMhath
26.06.2012 um 12:32 Uhr
Moin,

Kurzform:

"angelegt am", "angelegt von"
Per Default-Werte der Spalte

"geändert am", "geändert von".
Per UPDATE Trigger

lg,
Slainte
Bitte warten ..
Mitglied: SWuser
26.06.2012, aktualisiert um 13:15 Uhr
Zitat von SlainteMhath:
Moin,

Kurzform:

> "angelegt am", "angelegt von"
Per Default-Werte der Spalte

> "geändert am", "geändert von".
Per UPDATE Trigger

lg,
Slainte

Okay, danke für die Info.
Habe mich mal mit den Triggern auseinandergesetzt.
Könntest du (oder auch jmd. anderes) mir da weitere Hilfe geben?

Hier mal ein Triggerversuch:

CREATE TRIGGER I_Update_Test_Update
ON dbo.datenbank
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE dbo.tabelle
SET modified = now()
WHERE ???
UPDATE dbo.tabelle
SET [modified by] = ???
WHERE ???

END

Bei den Fragezeichen weiß ich leider nicht weiter...
Wie gesagt, dass soll halt nur für den betreffenden Tupel/Datensatz gemacht werden.
Bitte warten ..
Mitglied: SlainteMhath
26.06.2012 um 13:25 Uhr
Fürs Update:
01.
CREATE TRIGGER I_Update_Test_Update  
02.
ON dbo.datenbank  
03.
AFTER UPDATE 
04.
AS  
05.
BEGIN 
06.
SET NOCOUNT ON; 
07.
UPDATE dbo.tabelle t 
08.
SET t.modified = now(), t.[modified by] = SUSER_SNAME() 
09.
JOIN inserted i 
10.
ON t.key = i.key

Für Insert defaults wie folgt setzen:
"angelegt am" = now()
"angelegt von" = SUSER_SNAME()
Bitte warten ..
Mitglied: LianenSchwinger
26.06.2012, aktualisiert um 15:12 Uhr
Also bei Orcale geht das wie folgt:

01.
CREATE OR REPLACE TRIGGER aaa_u BEFORE UPDATE ON aaa FOR EACH ROW 
02.
BEGIN  
03.
   :NEW.change_user := 'xyz'; 
04.
   :NEW.change_date := SYSDATE; 
05.
END;
Da gibt es doch bestimmt etwas ähnliches bei MSSQL.

Gruß Jörg
Bitte warten ..
Mitglied: SlainteMhath
26.06.2012 um 15:10 Uhr
Also ich glaube nicht das dem TE ein Oracle Script, noch dazu eins das nicht ganz das macht was gefragt war, was bringt - aber danke fürs Posten ^^
Bitte warten ..
Mitglied: SWuser
26.06.2012 um 15:25 Uhr
Zitat von SlainteMhath:
Fürs Update:
01.
> CREATE TRIGGER I_Update_Test_Update  
02.
> ON dbo.datenbank  
03.
> AFTER UPDATE 
04.
> AS  
05.
> BEGIN 
06.
> SET NOCOUNT ON; 
07.
> UPDATE dbo.tabelle t 
08.
> SET t.modified = now(), t.[modified by] = SUSER_SNAME() 
09.
> JOIN inserted i 
10.
> ON t.key = i.key 
11.
> 

Für Insert defaults wie folgt setzen:
"angelegt am" = now()
"angelegt von" = SUSER_SNAME()


Danke für deine Ausführungen! Kenne "UPDATE" halt nur in der Form mit "SET" und "WHERE".
Habe den Trigger angepasst.
Habe noch zwei Fehler:
1. "'now' is not a recognized built-in function name."
2. "Falsche Syntax in der Nähe von 'JOIN'."
Bitte warten ..
Mitglied: SWuser
26.06.2012 um 15:26 Uhr
Zitat von LianenSchwinger:
Also bei Orcale geht das wie folgt:

01.
> CREATE OR REPLACE TRIGGER aaa_u BEFORE UPDATE ON aaa FOR EACH ROW 
02.
> BEGIN  
03.
>    :NEW.change_user := 'xyz'; 
04.
>    :NEW.change_date := SYSDATE; 
05.
> END; 
06.
> 
Da gibt es doch bestimmt etwas ähnliches bei MSSQL.

Gruß Jörg

Danke auch für deine "Mühe"! Aber mit Oracle kann ich noch nichts anfangen, bringe mir SQL erst anhand von MSSQL bei.
Bitte warten ..
Mitglied: LianenSchwinger
26.06.2012 um 15:30 Uhr
Ging auch nur um die Frage, ob das nicht auf ähnliche Weise geht.

Hier wird der Trigger ausgelöst "bevor" das Update erfolgt und die beiden Spalten auf den User und das Systemdatum gesetzt.

Gruß Jörg
Bitte warten ..
Mitglied: SWuser
26.06.2012 um 15:56 Uhr
Zitat von SWuser:
> Zitat von SlainteMhath:
> ----
> Fürs Update:
>
01.
> > CREATE TRIGGER I_Update_Test_Update  
02.
> > ON dbo.datenbank  
03.
> > AFTER UPDATE 
04.
> > AS  
05.
> > BEGIN 
06.
> > SET NOCOUNT ON; 
07.
> > UPDATE dbo.tabelle t 
08.
> > SET t.modified = now(), t.[modified by] = SUSER_SNAME() 
09.
> > JOIN inserted i 
10.
> > ON t.key = i.key 
11.
> > 
>
>
> Für Insert defaults wie folgt setzen:
> "angelegt am" = now()
> "angelegt von" = SUSER_SNAME()


Danke für deine Ausführungen! Kenne "UPDATE" halt nur in der Form mit "SET" und "WHERE".
Habe den Trigger angepasst.
Habe noch zwei Fehler:
1. "'now' is not a recognized built-in function name."
2. "Falsche Syntax in der Nähe von 'JOIN'."

Okay, Fehler 1 (now) habe ich selber lösen können, ber könntest du mir bitte nochmals beim 2. Fehler helfen? Und was passiert bei dem JOIN eigentlich?

Danke und Gruß!
Felix
Bitte warten ..
Mitglied: SlainteMhath
26.06.2012 um 16:03 Uhr
Okay, Fehler 1 (now) habe ich selber lösen können, ber könntest du mir bitte nochmals beim 2.
Fehler helfen?

Versuchs mal so, hab grad keinen SQL greifbar. Wenns nichts klappt, les mal in der Doku zu UPDATE
01.
[...] 
02.
 UPDATE t 
03.
   SET t.modified = [...] 
04.
 FROM dbo.tabelle t 
05.
 JOIN inserted i 
06.
   ON t.key = i.key 
07.
[...]
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.
Bitte warten ..
Mitglied: MadMax
27.06.2012 um 00:01 Uhr
Moin,

bei SQL Server heißt das so:
01.
[...] 
02.
 UPDATE dbo.tabelle 
03.
   SET modified = [...] 
04.
 FROM dbo.tabelle t 
05.
 JOIN inserted i 
06.
   ON t.key = i.key 
07.
[...]
Gruß, Mad Max
Bitte warten ..
Mitglied: SWuser
27.06.2012 um 07:24 Uhr
Super, vielen Dank euch allen für eure Hilfe!
Habe es nun hinbekommen!
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Wie kann ich automatisch aus neu angelegten Tabellen Zellen auslesen lassen ?
Frage von Joerg18470VB for Applications4 Kommentare

Hallo zusammen, ich habe eine Mappe erstellt, in der es einen Button gibt mit dem eine neue Tabelle generiert ...

Datenbanken
Hilfe bei MSSQL-Anweisung, Werte in andere Tabelle einfügen
gelöst Frage von d4shoerncheNDatenbanken8 Kommentare

Guten Morgen, ich bräuchte einmal Eure Hilfe in Bezug auf MSSQL. Und zwar habe ich eine Tabelle Namens " meineDB . dbo . tdAddresses " ...

Datenbanken
MSSQL-Benutzer . Zugriff nur auf 2 Tabellen und 1 View
gelöst Frage von SnuffchenDatenbanken3 Kommentare

Hallo zusammen, kann man beim MSSQL-Server eine Benutzer so mit Rechten ausstatten, dass er nur auf 2 definierte Tabellen ...

Switche und Hubs
HP Switch mit Sommerzeit versehen
gelöst Frage von HenereSwitche und Hubs3 Kommentare

Servus zusammen, kann mir jemand sagen, wie ich den HP1920-16G die Sommer / Winterzeit beibringe ? NTP ist konfiguriert, ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...