Můžete použít @@DBTS
k získání aktuální verze řádku dané databáze na SQL Serveru. Přesněji řečeno, vrací naposledy použité rowversion hodnotu aktuální databáze.
Příklad 1 – Základní použití
Chcete-li použít @@DBTS
jednoduše ji vyberte v SELECT
prohlášení.
Takhle:
SELECT @@DBTS;
Výsledek:
+--------------------+ | (No column name) | |--------------------| | 0x0000000000000FA0 | +--------------------+
Příklad 2 – Různé databáze
Jak již bylo zmíněno, rowversion hodnota je specifická pro každou databázi. Proto se musíte ujistit, že jste ve správné databázi.
Zde je příklad k demonstraci:
USE Music; SELECT @@DBTS AS "Music rowversion"; Use WideWorldImportersDW; SELECT @@DBTS AS "WideWorldImportersDW rowversion";
Výsledek:
Changed database context to 'Music'. +--------------------+ | Music rowversion | |--------------------| | 0x00000000000007D0 | +--------------------+ (1 row affected) Changed database context to 'WideWorldImportersDW'. +-----------------------------------+ | WideWorldImportersDW rowversion | |-----------------------------------| | 0x0000000000015F90 | +-----------------------------------+ (1 row affected)
Kde se tato hodnota používá?
rowversion hodnotu používají sloupce, které mají buď rowversion nebo časové razítko datový typ. Tyto sloupce jsou automaticky aktualizovány jedinečným číslem na základě zvýšené hodnoty rowversion , kdykoli dojde k vložení nebo aktualizaci.
Pokud použiji výše uvedený příklad, pokud vložím nebo aktualizuji řádek v Music
databáze a tento řádek má verzi řádku sloupec, hodnota tohoto sloupce bude pravděpodobně nastavena na 0x00000000000007D1
(tj. 0x00000000000007D0
zvýšeno o 1). V této fázi, pokud bych měl použít @@DBTS
proti této databázi vrátí 0x00000000000007D1
(protože toto je naposledy použitý počet řádků hodnota).
Pokud pak aktualizuji tento řádek, jeho verze řádku sloupec se změní na 0x00000000000007D2
. To platí, i když operace aktualizace ve skutečnosti nezměnila žádná data. Tentokrát, pokud spustím @@DBTS
vrátí to 0x00000000000007D2
.
Příklad, který to demonstruje, najdete v tématu Co je „rowversion“ na serveru SQL Server.
Časové razítko datový typ je ve skutečnosti synonymem pro rowversion , tedy hodnotu vrácenou @@DBTS
odráží aktuální rowversion hodnotu, zda byla zvýšena o rowversion sloupec nebo časové razítko sloupec.
Všimněte si také, že časové razítko je jedním ze čtyř zastaralých datových typů, které jsou v režimu údržby a mohou být odebrány v budoucí verzi SQL Server. Proto byste měli použít rowversion místo časového razítka v nových vývojových pracích. Měli byste také naplánovat úpravu aplikací, které aktuálně používají časové razítko .