MIN_ACTIVE_ROWVERSION (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Returnerar det lägsta aktiva radversionsvärdet i den aktuella databasen. Ett rowversion-värde är aktivt om det används i en transaktion som ännu inte har committats. För mer information, se rowversion (Transact-SQL).

Anmärkning

Rowversion-datatypen kallas också tidsstämpel.

Transact-SQL syntaxkonventioner

Syntax

MIN_ACTIVE_ROWVERSION ( ) 

Returtyper

Returnerar ett binärt(8) värde.

Anmärkningar

MIN_ACTIVE_ROWVERSION är en icke-deterministisk funktion som returnerar det lägsta aktiva radversionsvärdet i den aktuella databasen. Ett nytt radversionsvärde genereras vanligtvis när en insättning eller uppdatering utförs på en tabell som innehåller en kolumn av typen radversion. Om det inte finns några aktiva värden i databasen returnerar MIN_ACTIVE_ROWVERSION samma värde som @@DBTS + 1.

MIN_ACTIVE_ROWVERSION är användbart i scenarier som datasynkronisering där radversionsvärden används för att gruppera uppsättningar av ändringar tillsammans. Om en applikation använder @@DBTS istället för MIN_ACTIVE_ROWVERSION är det möjligt att missa förändringar som är aktiva när synkronisering sker.

Funktionen MIN_ACTIVE_ROWVERSION påverkas inte av förändringar i transaktionsisoleringsnivåerna.

Examples

Följande exempel returnerar radversionsvärden genom att använda MIN_ACTIVE_ROWVERSION och @@DBTS. Observera att värdena skiljer sig när det inte finns några aktiva transaktioner i databasen.

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

Se även

@@DBTS (Transact-SQL)
Rodversion (Transact-SQL)