Sdílet prostřednictvím


MIN_ACTIVE_ROWVERSION (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrací nejnižší hodnotu aktivní verze řádku v aktuální databázi. Hodnota rowversion je aktivní, pokud je použita v transakci, která ještě nebyla potvrzena. Pro více informací viz rowversion (Transact-SQL).

Poznámka:

Datový typ verze řádku je také známý jako časové razítko.

Transact-SQL konvence syntaxe

Syntaxe

MIN_ACTIVE_ROWVERSION ( ) 

Návratové typy

Vrací binární hodnotu(8).

Poznámky

MIN_ACTIVE_ROWVERSION je nedeterministická funkce, která vrací nejnižší hodnotu aktivní verze řádku v aktuální databázi. Nová hodnota rowversion se obvykle generuje, když je provedeno vložení nebo aktualizace tabulky obsahující sloupec typu rowversion. Pokud v databázi nejsou aktivní hodnoty, MIN_ACTIVE_ROWVERSION vrátí stejnou hodnotu jako @@DBTS + 1.

MIN_ACTIVE_ROWVERSION je užitečné pro scénáře, jako je synchronizace dat, kde se hodnoty rowversion používají k seskupení sad změn dohromady. Pokud aplikace používá @@DBTS místo MIN_ACTIVE_ROWVERSION, je možné přehlédnout změny, které jsou aktivní při synchronizaci.

Funkce MIN_ACTIVE_ROWVERSION není ovlivněna změnami úrovní izolace transakcí.

Examples

Následující příklad vrací hodnoty rowversion pomocí MIN_ACTIVE_ROWVERSION a @@DBTS. Všimněte si, že hodnoty se liší, když v databázi nejsou aktivní transakce.

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

Viz také

@@DBTS (Transact-SQL)
Rowversion (Transact-SQL)