Udostępnij za pomocą


MIN_ACTIVE_ROWVERSION (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca najniższą aktywną wartość wersji wiersza w aktualnej bazie danych. Wartość rowversion jest aktywna, jeśli jest używana w transakcji, która jeszcze nie została zatwierdzona. Więcej informacji można znaleźć w rowversion (Transact-SQL).

Uwaga / Notatka

Typ danych rowversion znany jest również jako znacznik czasu.

Transact-SQL konwencje składni

Składnia

MIN_ACTIVE_ROWVERSION ( ) 

Typy zwracane

Zwraca wartość binarną(8).

Uwagi

MIN_ACTIVE_ROWVERSION jest funkcją niedeterministyczną, która zwraca najniższą aktywną wartość wersji wiersza w aktualnej bazie danych. Nowa wartość rowversion jest zazwyczaj generowana podczas wstawiania lub aktualizacji tabeli zawierającej kolumnę typu rowversion. Jeśli w bazie danych nie ma aktywnych wartości, MIN_ACTIVE_ROWVERSION zwraca tę samą wartość co @@DBTS + 1.

MIN_ACTIVE_ROWVERSION jest przydatne w sytuacjach takich jak synchronizacja danych, gdzie wartości wersji wiersza grupują zestawy zmian. Jeśli aplikacja używa @@DBTS zamiast MIN_ACTIVE_ROWVERSION, możliwe jest przeoczenie aktywnych zmian podczas synchronizacji.

Funkcja MIN_ACTIVE_ROWVERSION nie jest wpływana przez zmiany w poziomach izolacji transakcji.

Przykłady

Poniższy przykład zwraca wartości rowversion poprzez użycie MIN_ACTIVE_ROWVERSION i @@DBTS. Zauważ, że wartości różnią się, gdy w bazie danych nie ma aktywnych transakcji.

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

Zobacz też

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