Sie können den @@DBTS
verwenden Funktion, um die aktuelle Zeilenversion abzurufen einer bestimmten Datenbank in SQL Server. Genauer gesagt gibt es die zuletzt verwendete zurück Zeilenversion Wert der aktuellen Datenbank.
Beispiel 1 – Grundlegende Verwendung
Um den @@DBTS
zu verwenden Funktion, wählen Sie diese einfach innerhalb eines SELECT
aus Aussage.
So:
SELECT @@DBTS;
Ergebnis:
+--------------------+ | (No column name) | |--------------------| | 0x0000000000000FA0 | +--------------------+
Beispiel 2 – Unterschiedliche Datenbanken
Wie bereits erwähnt, die rowversion Der Wert ist für jede Datenbank spezifisch. Daher müssen Sie sicherstellen, dass Sie sich in der richtigen Datenbank befinden.
Hier ist ein Beispiel zur Veranschaulichung:
USE Music; SELECT @@DBTS AS "Music rowversion"; Use WideWorldImportersDW; SELECT @@DBTS AS "WideWorldImportersDW rowversion";
Ergebnis:
Changed database context to 'Music'. +--------------------+ | Music rowversion | |--------------------| | 0x00000000000007D0 | +--------------------+ (1 row affected) Changed database context to 'WideWorldImportersDW'. +-----------------------------------+ | WideWorldImportersDW rowversion | |-----------------------------------| | 0x0000000000015F90 | +-----------------------------------+ (1 row affected)
Wo wird dieser Wert verwendet?
Die Zeilenversion value wird von Spalten verwendet, die entweder eine rowversion haben oder Zeitstempel Datentyp. Solche Spalten werden automatisch mit einer eindeutigen Nummer aktualisiert, basierend auf dem inkrementierten Wert von rowversion , wenn eine Einfügung oder Aktualisierung auftritt.
Verwenden Sie das obige Beispiel, wenn ich eine Zeile in Music
einfüge oder aktualisiere Datenbank, und diese Zeile hat eine rowversion wird der Wert dieser Spalte wahrscheinlich auf 0x00000000000007D1
gesetzt (z. B. 0x00000000000007D0
um 1 erhöht). Wenn ich zu diesem Zeitpunkt @@DBTS
verwenden würde gegen diese Datenbank würde es 0x00000000000007D1
zurückgeben (weil dies die zuletzt verwendete rowcount ist Wert).
Wenn ich dann diese Zeile aktualisiere, wird ihre rowversion Spalte wird zu 0x00000000000007D2
. Dies gilt auch dann, wenn der Aktualisierungsvorgang eigentlich keine Daten geändert hat. Diesmal, wenn ich @@DBTS
ausführe es würde 0x00000000000007D2
zurückgeben .
Ein Beispiel, das dies demonstriert, finden Sie unter Was ist „rowversion“ in SQL Server.
Der Zeitstempel Datentyp ist eigentlich ein Synonym für rowversion , also der von @@DBTS
zurückgegebene Wert spiegelt die aktuelle Zeilenversion wider Wert, ob er durch eine rowversion inkrementiert wurde Spalte oder ein Zeitstempel Säule.
Beachten Sie auch diesen Zeitstempel ist einer von vier veralteten Datentypen, die sich im Wartungsmodus befinden und möglicherweise in einer zukünftigen Version von SQL Server entfernt werden. Daher sollten Sie rowversion verwenden statt Zeitstempel bei Neuentwicklungen. Sie sollten auch planen, Anwendungen zu ändern, die derzeit timestamp verwenden .