Zum Inhalt springen

datetime und SQL Server 2000


bigpoint

Empfohlene Beiträge

Gibt es beim SQL Server 2000 eine Möglichkeit eine Spalte wie datetime ohne programmieren so einstellen das die sich immer beim update auf aktuelle datum setzt

Beispiel : zwei spalte erst ist name zweite letzteaenderung in der spalte name steht test in letzteaenderung steht 8.12.2003 11:02 ....

Jetzt mache ich update set name = test1 where name = test

und letzteaenderung ändert sich automatisch auf aktuelle datum.

Ich habe mit timestamp probiert aber dann muß ich immer converten und das gefehlt mir nicht

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst einen Trigger für die Tabelle erstellen. Der reagiert dann immer beim Update bzw. Insert der Tabelle und setzt das Datum entsprechend. Das könnte dann z.B. so aussehen:


CREATE TRIGGER [CHANGE_DATE] ON [dbo].[TABELLE] 

FOR UPDATE,INSERT 


AS


UPDATE TABELLE SET DATUM = GETDATE() WHERE ID in (SELECT ID FROM INSERTED)


Da ersetzt du halt die Tabellen- und Feldnamen durch deine eigenen - wobei die Tabelle "INSERTED" eine temporäre Tabelle extra für die Trigger ist, in der alle geänderten und eingefügten Datensätze stehen - so würdest du halt für alle geänderten Sätze anhand der eindeutigen ID (oder wie du das auch immer realisierst) upgedatet!

Ein Problem ist dabei allerdings noch, daß der Trigger sich so rekursiv wieder aufrufen würde. Das müsste man noch entsprechend abfangen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich schätze, du sitzt da einem landläufigen Irrtum auf.

Schlagen wir mal die Hilfe auf:

The Transact-SQL timestamp data type is not the same as the timestamp data type defined in the SQL-92 standard. The SQL-92 timestamp data type is equivalent to the Transact-SQL datetime data type.

A future release of Microsoft® SQL Server™ may modify the behavior of the Transact-SQL timestamp data type to align it with the behavior defined in the standard. At that time, the current timestamp data type will be replaced with a rowversion data type.

Microsoft® SQL Server™ 2000 introduces a rowversion synonym for the timestamp data type. Use rowversion instead of timestamp wherever possible in DDL statements. rowversion is subject to the behaviors of data type synonyms.

Alternativen:

Wenn du es also gemäß deinen Anforderungsparametern haben willst, wirst du, da gebe ich beetFreeQ völlig Recht, um einen Trigger wohl nicht herumkommen.

Wenn du allerdings keinen Wert auf das Datum legst, kannst du timestamp - oder besser rowversion - benutzen.

Vorschlag:

RTFM :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...