MIN_ACTIVE_ROWVERSION (Transact-SQL)
Retorna o valor rowversion ativo mais baixo no banco de dados atual. Um valor rowversion será ativo se for usado em uma transação ainda não confirmada. Para obter mais informações, consulte rowversion (Transact-SQL).
Observação |
---|
O tipo de dados rowversion também é conhecido como timestamp. |
Convenções da sintaxe Transact-SQL
Sintaxe
MIN_ACTIVE_ROWVERSION
Tipos de retorno
Retorna um valor binary(8).
Comentários
MIN_ACTIVE_ROWVERSION é uma função não determinística que retorna o valor rowversion ativo mais baixo no banco de dados atual. Um novo valor rowversion normalmente é gerado quando uma inserção ou atualização é executada em uma tabela que contém uma coluna do tipo rowversion. Se não houver nenhum valor ativo no banco de dados, MIN_ACTIVE_ROWVERSION retornará o mesmo valor como @@DBTS + 1.
MIN_ACTIVE_ROWVERSION é útil para cenários como sincronização de dados que usam o valor rowversion para agrupar conjuntos de alterações. Se um aplicativo usar @@DBTS em vez de MIN_ACTIVE_ROWVERSION, as alterações que estiverem ativas quando a sincronização ocorrer poderão ser perdidas.
Exemplos
O exemplo a seguir retorna o valor rowversion usando MIN_ACTIVE_ROWVERSION e @@DBTS. Observe que os valores diferem quando não há nenhuma transação ativa no banco 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