Wie Sie die Timestamp-Spalte einer Tabelle für die Steuerung der vollständigen Parallelität in SQL Server 2005


Einführung


Die Timestamp -Spalte einer Tabelle kann verwendet werden, um festzustellen, ob ein Wert in der Zeile seit dem letzten der Tabelle Lesen geändert hat. Dieser Artikel beschreibt die Timestamp -Spalte einer Tabelle für die Steuerung der vollständigen Parallelität in Microsoft SQL Server 2005 verwenden.

Weitere Informationen


Sie können eine Timestamp -Spalte einer Tabelle hinzufügen zur Erhaltung die Integrität der Datenbank, wenn Benutzer mehrere Zeilen gleichzeitig aktualisieren. Sie sollten auch wissen, wie viele Zeilen und ohne erneute Abfrage der Tabelle die Zeilen aktualisiert wurden.

Angenommen Sie, eine Tabelle mit dem Namen MyTestzu erstellen. Einige Daten in die Tabelle zu füllen, die folgende Transact-SQL-Anweisung ausgeführt.
CREATE TABLE MyTest (myKey int PRIMARY KEY, myValue int, TS timestamp)
GO
INSERT INTO MyTest (myKey, myValue) VALUES (1, 0)
GO
INSERT INTO MyTest (mykey, myValue) VALUES (2, 0)
GO
Beispiel Transact-SQL-Anweisungen können Sie um Steuerung der vollständigen Parallelität MyTest -Tabelle während der Aktualisierung zu implementieren.
DECLARE @t TABLE (myKey int)
UPDATE MyTest SET myValue = 2
OUTPUT inserted.myKey into @t(myKey)
WHERE myKey = 1 and TS = TSValueIF (SELECT COUNT(*) FROM @t) = 0
BEGIN
RAISERROR ('error changing row with myKey = %d',
16, -- Severity.
1, -- State.
1) -- myKey that was changed
END
Hinweis TSValue ist der Zeitstempel Spaltenwert für die Zeile, die der letzten angibt, die die Zeilen zu lesen. Dieser Wert muss den aktuellen Timestamp -Wert ersetzt werden. Ein Beispiel der aktuelle Timestamp -Wert ist 0x00000000000007D3.

Sie stellen auch Beispiel Transact-SQL-Anweisungen in einer Transaktion. Abfragen @t Variable im Gültigkeitsbereich der Transaktion können Sie aktualisierte MyKey -Spalte der Tabelle abrufen, ohne erneut Abfragen MyTest -Tabelle.

Weitere Informationen zu den Spaltentyp Zeitstempel finden Sie auf der folgenden Microsoft Developer Network (MSDN)-Website: