bigpoint Geschrieben 8. Dezember 2003 Teilen Geschrieben 8. Dezember 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
beetFreeQ Geschrieben 8. Dezember 2003 Teilen Geschrieben 8. Dezember 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 9. Dezember 2003 Autor Teilen Geschrieben 9. Dezember 2003 Vielen Dank für Antwort, ja mit dem Triger ist mir klar, ich dachte aber man kann es irgend wie automatisch einstellen wie zB timestap nur beim timestamp kriege ich es in Hex und nicht im Datatime ?!? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
just_me Geschrieben 9. Dezember 2003 Teilen Geschrieben 9. Dezember 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.