Puoi usare il @@DBTS
funzione per ottenere la versione di riga corrente di un determinato database in SQL Server. Più precisamente, restituisce l'ultimo utilizzato versione riga valore del database corrente.
Esempio 1 – Utilizzo di base
Per utilizzare il @@DBTS
funzione, selezionala semplicemente all'interno di un SELECT
dichiarazione.
In questo modo:
SELECT @@DBTS;
Risultato:
+--------------------+ | (No column name) | |--------------------| | 0x0000000000000FA0 | +--------------------+
Esempio 2 – Database diversi
Come accennato, la rowversion il valore è specifico per ogni database. Pertanto, devi assicurarti di essere nel database giusto.
Ecco un esempio da dimostrare:
USE Music; SELECT @@DBTS AS "Music rowversion"; Use WideWorldImportersDW; SELECT @@DBTS AS "WideWorldImportersDW rowversion";
Risultato:
Changed database context to 'Music'. +--------------------+ | Music rowversion | |--------------------| | 0x00000000000007D0 | +--------------------+ (1 row affected) Changed database context to 'WideWorldImportersDW'. +-----------------------------------+ | WideWorldImportersDW rowversion | |-----------------------------------| | 0x0000000000015F90 | +-----------------------------------+ (1 row affected)
Dove viene utilizzato questo valore?
La versione di riga value viene utilizzato dalle colonne che hanno una rowversion o indicatore orario tipo di dati. Tali colonne vengono aggiornate automaticamente con un numero univoco, in base al valore incrementato di rowversion , ogni volta che si verifica un inserimento o un aggiornamento.
Utilizzando l'esempio sopra, se inserisco o aggiorno una riga in Music
database e quella riga ha una rowversion colonna, il valore di quella colonna sarà probabilmente impostato su 0x00000000000007D1
(cioè 0x00000000000007D0
incrementato di 1). A questo punto, se dovessi usare @@DBTS
contro quel database, restituirebbe 0x00000000000007D1
(perché è l'ultimo numero di righe utilizzato valore).
Se poi aggiorno quella riga, è rowversion la colonna diventerà 0x00000000000007D2
. Questo è vero, anche se l'operazione di aggiornamento non ha effettivamente modificato alcun dato. Questa volta, se eseguo @@DBTS
restituirebbe 0x00000000000007D2
.
Per un esempio che lo dimostra, vedere Che cos'è "rowversion" in SQL Server.
Il indicatore orario tipo di dati è in realtà un sinonimo di rowversion , quindi il valore restituito da @@DBTS
riflette la versione di riga corrente valore se è stato incrementato di una rowversion colonna o un timestamp colonna.
Tieni inoltre presente che timestamp è uno dei quattro tipi di dati deprecati che sono in modalità di manutenzione e potrebbero essere rimossi in una versione futura di SQL Server. Pertanto dovresti utilizzare rowversion invece di timestamp nel nuovo lavoro di sviluppo. Dovresti anche pianificare la modifica delle applicazioni che attualmente utilizzano timestamp .