timestamp (Transact-SQL)
TOC
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern
Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

timestamp (Transact-SQL)

Ein Datentyp, der automatisch generierte eindeutige, binäre Zahlen in einer Datenbank verfügbar macht. timestamp wird normalerweise als Mechanismus für die Erstellung einer Versionskennung von Tabellenzeilen verwendet. Die Speichergröße beträgt 8 Bytes. Der timestamp-Datentyp ist nur eine inkrementelle Nummer und behält ein Datum oder eine Uhrzeit nicht bei. Zum Aufzeichnen eines Datums oder einer Uhrzeit verwenden Sie einen datetime-Datentyp.

Jede Datenbank weist einen Zähler auf, der für jeden Einfügungs- oder Updatevorgang inkrementiert wird, der für eine Tabelle mit einer timestamp-Spalte in der Datenbank ausgeführt wird. Dieser Zähler ist der Datenbanktimestamp. Hiermit wird ein relativer Zeitpunkt innerhalb einer Datenbank nachverfolgt, keine tatsächliche Zeit, die einer Uhr zugeordnet werden kann. Eine Tabelle kann nur eine timestamp-Spalte aufweisen. Jedes Mal, wenn eine Zeile mit einer timestamp-Spalte geändert oder eingefügt wird, wird der inkrementierte Wert des Datenbanktimestamps in die timestamp-Spalte eingefügt. Daher sind timestamp-Spalten ungeeignete Kandidaten für Schlüssel, insbesondere für Primärschlüssel. Jede Aktualisierung der Zeile ändert den timestamp-Wert und somit auch den Wert des Schlüssels. Wenn die Spalte in einem Primärschlüssel verwendet wird, ist der alte Wert nicht mehr gültig und somit auch alle Fremdschlüssel, die auf den alten Wert verweisen. Wenn in einem dynamischen Cursor auf die Tabelle verwiesen wird, ändern alle Aktualisierungen die Position der Zeilen im Cursor. Falls die Spalte in einem Indexschlüssel verwendet wird, generieren alle Aktualisierungen der Datenzeile auch Aktualisierungen des Indexes.

Mithilfe der timestamp-Spalte einer Zeile können Sie auf einfache Weise ermitteln, ob ein Wert in der Zeile geändert wurde, seit er zuletzt gelesen wurde. Falls die Zeile geändert wurde, wird der timestamp-Wert aktualisiert. Falls die Zeile nicht geändert wurde, ist der timestamp-Wert unverändert, seitdem die Zeile zuletzt gelesen wurde . Verwenden Sie @@DBTS, um den aktuellen timestamp-Wert für eine Datenbank zurückzugeben.

Der timestamp-Datentyp von Transact-SQL unterscheidet sich vom timestamp-Datentyp gemäß dem SQL-2003-Standard. Der timestamp-Datentyp von SQL-2003 ist gleichwertig mit dem datetime-Datentyp von Transact-SQL.

rowversion ist das Synonym für den timestamp-Datentyp und unterliegt der Verhaltensweise von Datentypsynonymen. Verwenden Sie in DDL-Anweisungen möglichst rowversion anstelle von timestamp. Weitere Informationen finden Sie unter Synonyme für Datentypen (Transact-SQL).

In einer CREATE TABLE- oder ALTER TABLE-Anweisung müssen Sie keinen Spaltennamen für den timestamp-Datentyp angeben:

CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, timestamp);

Wenn Sie keinen Spaltennamen angeben, generiert Microsoft SQL Server 2005-Datenbankmodul den timestamp-Spaltennamen. Das rowversion-Synonym folgt jedoch nicht diesem Verhalten. Wenn Sie rowversion verwenden, müssen Sie einen Spaltennamen angeben.

ms182776.note(de-de,SQL.90).gifHinweis:
Doppelte timestamp-Werte können mithilfe der SELECT INTO-Anweisung generiert werden, bei der eine timestamp-Spalte in der SELECT-Liste vorhanden ist. timestamp sollte jedoch nicht auf diese Weise verwendet werden.

Eine timestamp-Spalte, die keine NULL-Werte zulässt, ist semantisch gleichwertig mit einer binary(8)-Spalte. Eine timestamp-Spalte, die NULL-Werte zulässt, ist semantisch gleichwertig mit einer varbinary(8)-Spalte.

Anzeigen:
© 2016 Microsoft