Delen via


MIN_ACTIVE_ROWVERSION (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Geeft de laagste actieve rowversiewaarde in de huidige database terug. Een rowversion-waarde is actief als deze wordt gebruikt in een transactie die nog niet is gecommit. Voor meer informatie, zie rowversion (Transact-SQL).

Opmerking

Het rowversie-datatype staat ook bekend als timestamp.

Transact-SQL syntaxis-conventies

Syntaxis

MIN_ACTIVE_ROWVERSION ( ) 

Retourtypen

Geeft een binair(8) waarde terug.

Opmerkingen

MIN_ACTIVE_ROWVERSION is een niet-deterministische functie die de laagste actieve rowversiewaarde in de huidige database teruggeeft. Een nieuwe rowversion-waarde wordt doorgaans gegenereerd wanneer een insert of update wordt uitgevoerd op een tabel die een kolom van het type rowversion bevat. Als er geen actieve waarden in de database staan, geeft MIN_ACTIVE_ROWVERSION dezelfde waarde terug als @@DBTS + 1.

MIN_ACTIVE_ROWVERSION is nuttig voor scenario's zoals datasynchronisatie waarbij rijversiewaarden worden gebruikt om sets wijzigingen samen te groeperen. Als een applicatie @@DBTS gebruikt in plaats van MIN_ACTIVE_ROWVERSION, is het mogelijk om wijzigingen die actief zijn bij synchronisatie te missen.

De MIN_ACTIVE_ROWVERSION functie wordt niet beïnvloed door veranderingen in de isolatieniveaus van transacties.

Voorbeelden

Het volgende voorbeeld geeft rijversiewaarden terug door gebruik te maken van MIN_ACTIVE_ROWVERSION en @@DBTS. Let op dat de waarden verschillen wanneer er geen actieve transacties in de database zijn.

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

Zie ook

@@DBTS (Transact-SQL)
Rijversie (Transact-SQL)