none
Timestamp RRS feed

  • Frage

  • Hallo in einem SQL Server 2014 habe ich eine Spalte mit der Definition Timestamp gefunden. Diese beinhaltet zb. einen solchen Wert:

    0x0000000000FC1112

    Jedoch sieht das nicht wirklich aus wie ein Zeitstempel. Ich habe jetzt schon ein paar Sachen gelesen die auf Rowversion zurück zu führen. Jedoch verstehe ich das leider nicht so richtig. Gehe ich richtig in der Annahme das Timestamp nicht wirklich zerlegbar ist in ein Datum?

    Dienstag, 12. Januar 2016 09:08

Antworten

  • Hallo,

    die alte Bezeichnung "Timestamp" ist wirklich irreführend und der Datentyp heisst deswegen mittlerweile RowVersion, was treffender ist; mit einem Datumswert hat es nichts zu tun.

    Es handelt sich hierbei um einen fortlaufenden Binary Wert, die Spalte wird vom SQL Server automatisch gefüllt und gepflegt, d.h. bei jedem Update auf einen Datensatz wird der Wert auf den aktuell höchsten Wert gesetzt. Dadurch sieht man z.B. in welcher Reihenfolge die Daten zuletzt geändert wurden. Man nutzt es zum Concurrency Kontrolle, spricht wenn eine App einen Datensatz liest, ändert und wieder schreiben will, kann darüber geprüft werden, ob zwischenzeitlich der Datensatz geändert wurde.

    Siehe rowversion (Transact-SQL)


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort vorgeschlagen Benjamin.Hoch Dienstag, 12. Januar 2016 09:31
    • Als Antwort markiert Toot_Braunstein Dienstag, 12. Januar 2016 13:49
    Dienstag, 12. Januar 2016 09:17

Alle Antworten

  • Hallo,

    die alte Bezeichnung "Timestamp" ist wirklich irreführend und der Datentyp heisst deswegen mittlerweile RowVersion, was treffender ist; mit einem Datumswert hat es nichts zu tun.

    Es handelt sich hierbei um einen fortlaufenden Binary Wert, die Spalte wird vom SQL Server automatisch gefüllt und gepflegt, d.h. bei jedem Update auf einen Datensatz wird der Wert auf den aktuell höchsten Wert gesetzt. Dadurch sieht man z.B. in welcher Reihenfolge die Daten zuletzt geändert wurden. Man nutzt es zum Concurrency Kontrolle, spricht wenn eine App einen Datensatz liest, ändert und wieder schreiben will, kann darüber geprüft werden, ob zwischenzeitlich der Datensatz geändert wurde.

    Siehe rowversion (Transact-SQL)


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort vorgeschlagen Benjamin.Hoch Dienstag, 12. Januar 2016 09:31
    • Als Antwort markiert Toot_Braunstein Dienstag, 12. Januar 2016 13:49
    Dienstag, 12. Januar 2016 09:17
  • Danke Olaf! du hast Licht ins dunkel gebracht!
    Dienstag, 12. Januar 2016 13:50