Możesz użyć @@DBTS
funkcja, aby uzyskać aktualną wersję wiersza danej bazy danych w SQL Server. Dokładniej, zwraca ostatnio używane rowwersja wartość bieżącej bazy danych.
Przykład 1 – Podstawowe użycie
Aby użyć @@DBTS
funkcji, po prostu wybierz ją w ramach SELECT
oświadczenie.
Tak:
SELECT @@DBTS;
Wynik:
+--------------------+ | (No column name) | |--------------------| | 0x0000000000000FA0 | +--------------------+
Przykład 2 – Różne bazy danych
Jak wspomniano, rowwersja wartość jest specyficzna dla każdej bazy danych. Dlatego musisz upewnić się, że jesteś we właściwej bazie danych.
Oto przykład do zademonstrowania:
USE Music; SELECT @@DBTS AS "Music rowversion"; Use WideWorldImportersDW; SELECT @@DBTS AS "WideWorldImportersDW rowversion";
Wynik:
Changed database context to 'Music'. +--------------------+ | Music rowversion | |--------------------| | 0x00000000000007D0 | +--------------------+ (1 row affected) Changed database context to 'WideWorldImportersDW'. +-----------------------------------+ | WideWorldImportersDW rowversion | |-----------------------------------| | 0x0000000000015F90 | +-----------------------------------+ (1 row affected)
Gdzie jest używana ta wartość?
wersja wiersza wartość jest używana przez kolumny, które mają wersję wiersza lub sygnatura czasowa typ danych. Takie kolumny są automatycznie aktualizowane unikalnym numerem na podstawie zwiększonej wartości rowversion , za każdym razem, gdy nastąpi wstawienie lub aktualizacja.
Korzystając z powyższego przykładu, jeśli wstawię lub zaktualizuję wiersz w Music
bazy danych, a ten wiersz ma wersję wiersza kolumna, wartość tej kolumny będzie prawdopodobnie ustawiona na 0x00000000000007D1
(np. 0x00000000000007D0
zwiększana o 1). Na tym etapie, gdybym miał użyć @@DBTS
względem tej bazy danych, zwróci 0x00000000000007D1
(ponieważ jest to ostatnio używany liczba wierszy wartość).
Jeśli następnie zaktualizuję ten wiersz, jego wersja wiersza kolumna zmieni się na 0x00000000000007D2
. To prawda, nawet jeśli operacja aktualizacji w rzeczywistości nie zmieniła żadnych danych. Tym razem, jeśli uruchomię @@DBTS
zwróci 0x00000000000007D2
.
Aby zobaczyć przykład, który to demonstruje, zobacz Co to jest „rowversion” w SQL Server.
sygnatura czasowa typ danych jest w rzeczywistości synonimem rowversion , więc wartość zwracana przez @@DBTS
odzwierciedla aktualną wersję wiersza wartość, czy została zwiększona o wersję wiersza kolumna lub sygnatura czasowa kolumna.
Pamiętaj też, że sygnatura czasowa jest jednym z czterech przestarzałych typów danych, które są w trybie konserwacji i mogą zostać usunięte w przyszłej wersji programu SQL Server. Dlatego powinieneś użyć rowversion zamiast sygnatury czasowej w nowych pracach rozwojowych. Powinieneś także zaplanować modyfikację aplikacji, które obecnie używają sygnatury czasowej .