Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza 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