Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zwrócić bieżącą wartość rowversion dla bazy danych programu SQL Server (przykład T-SQL)

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 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DATETIMEOFFSETFROMPARTS() Przykłady w SQL Server (T-SQL)

  2. Skopiuj tabelę do innej bazy danych na innym serwerze SQL

  3. Jak mogę używać jednej puli połączeń mssql na kilku trasach w aplikacji internetowej Express 4?

  4. Wstaw zbiorczy programu SQL Server — część 1

  5. Serwer Adaptive Server jest niedostępny lub nie występuje błąd podczas łączenia się z serwerem SQL z PHP