Partager via


MIN_ACTIVE_ROWVERSION (Transact-SQL)

S’applique à : SQL ServerAzure SQL Database Azure SQL Managed Instance

Retourne la valeur rowversion active la plus basse dans la base de données active. Une valeur rowversion est active si elle est utilisée dans une transaction qui n'a pas encore été validée. Pour plus d’informations, consultez rowversion (Transact-SQL).

Notes

Le type de données rowversion est aussi appelé timestamp.

Conventions de la syntaxe Transact-SQL

Syntaxe

MIN_ACTIVE_ROWVERSION ( ) 

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Types de retour

Retourne une valeur binary(8).

Remarques

MIN_ACTIVE_ROWVERSION est une fonction non déterministe qui retourne la valeur rowversion active la plus basse dans la base de données active. Une nouvelle valeur rowversion est générée en règle générale lorsqu'une insertion ou une mise à jour est effectuée sur une table qui contient une colonne de type rowversion. S'il n'y a pas de valeurs actives dans la base de données, MIN_ACTIVE_ROWVERSION retourne la même valeur que @@DBTS + 1.

MIN_ACTIVE_ROWVERSION est utile dans certains scénarios, par exemple dans le cadre de la synchronisation de données qui utilise des valeurs rowversion pour grouper des jeux de modifications. Si une application utilise @@DBTS au lieu de MIN_ACTIVE_ROWVERSION, il est possible de rater des modifications qui sont actives au moment de la synchronisation.

La fonction MIN_ACTIVE_ROWVERSION n'est pas affectée par les modifications apportées aux niveaux d'isolation des transactions.

Exemples

L’exemple suivant retourne des valeurs rowversion à l’aide de MIN_ACTIVE_ROWVERSION et @@DBTS. Notez que les valeurs diffèrent lorsqu'il n'y a pas de transactions actives dans la base de données.

-- 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  

Voir aussi

@@DBTS (Transact-SQL)
rowversion (Transact-SQL)