MIN_ACTIVE_ROWVERSION (Transact-SQL)

Data creazione: 15 settembre 2007

Restituisce il valore rowversion attivo più basso nel database corrente. Il valore rowversion è attivo se viene utilizzato in una transazione della quale non è stato ancora eseguito il commit. Per ulteriori informazioni, vedere timestamp (Transact-SQL).

[!NOTA] Il tipo di dati rowversion è anche noto come timestamp.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

MIN_ACTIVE_ROWVERSION

Tipi restituiti

Restituisce un valore binary(8).

Osservazioni

MIN_ACTIVE_ROWVERSION è una funzione non deterministica che restituisce il valore rowversion attivo più basso nel database corrente. Un valore rowversion nuovo viene generato di solito quando viene eseguito un aggiornamento o un inserimento in una tabella che contiene una colonna di tipo rowversion. Se non ci sono valori attivi nel database, MIN_ACTIVE_ROWVERSION restituisce lo stesso valore di @@ DBTS + 1.

MIN_ACTIVE_ROWVERSION è utile per scenari come la sincronizzazione dei dati che utilizzano i valori rowversion per raggruppare gli insiemi di modifiche. Se un'applicazione utilizza @@DBTS invece di MIN_ACTIVE_ROWVERSION, è possibile mancare le modifiche che sono attive quando si verifica la sincronizzazione.

Esempi

Nell'esempio seguente vengono restituiti i valori rowversion mediante MIN_ACTIVE_ROWVERSION e @@DBTS. Si noti che i valori differiscono quando non ci sono transazioni attive nel database.

-- Create a table that has a ROWVERSION column in it.
CREATE TABLE RowVersionTestTable (rv ROWVERSION)
GO

-- Print the current values for the database.
PRINT ''
PRINT 'DBTS'
PRINT @@DBTS
PRINT 'MIN_ACTIVE_ROWVERSION'
PRINT MIN_ACTIVE_ROWVERSION() 
GO
---------------- Results ----------------
--DBTS
--0x00000000000007E2
--MIN_ACTIVE_ROWVERSION
--0x00000000000007E3

-- Insert a row.
INSERT INTO RowVersionTestTable VALUES (DEFAULT)
SELECT * FROM RowVersionTestTable
GO
---------------- Results ----------------
--rv
--0x00000000000007E3

-- Print the current values for the database.
PRINT ''
PRINT 'DBTS'
PRINT @@DBTS
PRINT 'MIN_ACTIVE_ROWVERSION'
PRINT MIN_ACTIVE_ROWVERSION()
GO
---------------- Results ----------------
--DBTS
--0x00000000000007E3
--MIN_ACTIVE_ROWVERSION
--0x00000000000007E4

-- Insert a new row inside a transaction but do not commit.
BEGIN TRAN
INSERT INTO RowVersionTestTable VALUES (DEFAULT)
SELECT * FROM RowVersionTestTable
GO
---------------- Results ----------------
--rv
--0x00000000000007E3
--0x00000000000007E4

-- Print the current values for the database.
PRINT ''
PRINT 'DBTS'
PRINT @@DBTS
PRINT 'MIN_ACTIVE_ROWVERSION'
PRINT MIN_ACTIVE_ROWVERSION() 
GO
---------------- Results ----------------
--DBTS
--0x00000000000007E4
--MIN_ACTIVE_ROWVERSION
--0x00000000000007E4

-- Commit the transaction.
COMMIT
GO

-- Print the current values for the database.
PRINT ''
PRINT 'DBTS'
PRINT @@DBTS
PRINT 'MIN_ACTIVE_ROWVERSION'
PRINT MIN_ACTIVE_ROWVERSION()
GO
---------------- Results ----------------
--DBTS
--0x00000000000007E4
--MIN_ACTIVE_ROWVERSION
--0x00000000000007E5

Vedere anche

Riferimento

@@DBTS (Transact-SQL)
timestamp (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005