Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-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