Announcement

Collapse
No announcement yet.

MSSQL und TimeStamp

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MSSQL und TimeStamp

    Hallo,

    weis jemand wozu der Typ TimeStamp verwendet wird. Kann man diesen Typ auch für eigene Zwecke nutzen, und in welchen Bereichen kann man TimeStamp am sinnvollsten einsetzten ?

    Bis dann
    Mathias

  • #2
    Hallo,

    in der Hilfe zum SQL Server 7 liest sich das so: "<i>Wird verwendet, um die Abfolge der SQL Server-Aktivitäten für eine Zeile zu kennzeichnen, und wird in Form einer ansteigenden Zahl in einem binären Format dargestellt. Wenn eine Zeile in einer Tabelle geändert wird, wird der Timestamp mit dem Wert des aktuellen Datenbanktimestamps aktualisiert, der von der @@DBTS*Funktion erhalten wird. Daten des timestamp-Datentyps stehen in keiner Beziehung zu dem Datum und der Uhrzeit der Einfügung oder Änderung von Daten. Wenn der Zeitpunkt automatisch aufgezeichnet werden soll, zu dem Datenänderungen in einer Tabelle vorgenommen werden, verwenden Sie entweder den datetime- oder den smalldatetime-Datentyp für die Aufzeichnung von Ereignissen und Triggern.

    Der timestamp-Datentyp von SQL Server hängt in keiner Weise mit Zeit- oder Datumswerten zusammen. SQL Server-timestamps sind binäre Zahlen, die die relative Reihenfolge angeben, in der Datenänderungen in einer Datenbank vorgenommen wurden. Der timestamp-Datentyp wurde ursprünglich zur Unterstützung des SQL Server-Wiederherstellungsalgorithmus implementiert. Jedes Mal, wenn eine Seite geändert wurde, wurde sie mit dem aktuellen @@DBTS-Wert markiert; @@DBTS wurde dann um eins erhöht. Dies reichte aus, damit die Wiederherstellung die relative Reihenfolge feststellen konnte, in der Seiten geändert wurden. Allerdings hingen die timestamp-Werte nicht mit der Zeit zusammen.

    In SQL Server, Version 7.0, wird @@DBTS nur für die Verwendung in timestamp-Spalten erhöht. Falls eine Tabelle eine timestamp-Spalte enthält, wird bei jeder Änderung einer Zeile durch eine INSERT-, UPDATE- oder DELETE-Anweisung der timestamp-Wert in der Zeile auf den aktuellen @@DBTS-Wert festgelegt und @@DBTS um eins erhöht.

    Verwenden Sie auf keinen Fall timestamp-Spalten in Schlüsseln, insbesondere nicht in Primärschlüsseln, da sich der timestamp-Wert jedes Mal ändert, wenn die Zeile geändert wird.

    Wenn der Zeitpunkt aufgezeichnet werden soll, zu dem Datenänderungen in einer Tabelle vorgenommen werden, verwenden Sie entweder den datetime- oder den smalldatetime-Datentyp für die Aufzeichnung von Ereignissen und Triggern. Auf diese Weise werden die Werte automatisch aktualisiert, wenn eine Änderung vorgenommen wird.
    </i>"

    Somit entspricht TimeStamp am ehesten einer ROWID und kann als Kennzeichner verwendet werden, ob ein Datensatz in der Zwischenzeit geändert wurde

    Comment

    Working...
    X