Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Devolve o valor de rowversion ativo mais baixo na base de dados atual. Um valor de rowversion está ativo se for utilizado numa transação que ainda não foi confirmada. Para mais informações, veja rowversion (Transact-SQL).
Observação
O tipo de dado rowversion também é conhecido como carimbo temporal.
Transact-SQL convenções de sintaxe
Sintaxe
MIN_ACTIVE_ROWVERSION ( )
Tipos de devolução
Devolve um valor binário(8).
Observações
MIN_ACTIVE_ROWVERSION é uma função não determinística que devolve o valor de rowversion ativo mais baixo na base de dados atual. Um novo valor de rowversion é normalmente gerado quando é realizada uma inserção ou atualização numa tabela que contém uma coluna de tipo rowversion. Se não houver valores ativos na base de dados, MIN_ACTIVE_ROWVERSION devolve o mesmo valor que @@DBTS + 1.
MIN_ACTIVE_ROWVERSION é útil para cenários como a sincronização de dados, que usam valores de rowversion para agrupar conjuntos de alterações. Se uma aplicação usar @@DBTS em vez de MIN_ACTIVE_ROWVERSION, é possível perder alterações ativas quando ocorre a sincronização.
A função MIN_ACTIVE_ROWVERSION não é afetada por alterações nos níveis de isolamento das transações.
Examples
O exemplo seguinte devolve valores de rowversion usando MIN_ACTIVE_ROWVERSION e @@DBTS. Note que os valores diferem quando não há transações ativas na base de dados.
-- 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